Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2009-02-21 05:34:19

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Использование PHP-акселераторов

Сегодня прочитал статью про серверную оптимизацию и решил проверить - действительно ли при использовании APC (PHP-акселератор) реально добиться значительного увеличения производительности.

Для исследования был взят с достаточным количеством контента (~10k новостей) и неплохой нагрузкой.
Вот какие получились результаты:
1. Простая установка APC - дала незначительный (10-20%) прирост производительности (уменьшилось время исполнения скрипта)
2. Кеширование работы одного, но на удивление самого тяжего SQL запроса (определение кол-ва опубликованных новостей на сайте) дало удивительный результат - среднее время генерации страницы упало с ~220ms до ~100ms, т.е. 50% прироста!

Итого: час работы на установку, настройку, патч двига... и мы имеем великолепный эффект!


Для тех, кто хочет сам оптимизировать работу своего сайта, приведу патч.
Открываем engine/includes/news.php, находим строку ~445:

	$newsCount = $mysql->result($query['count']);

и заменяем её на:

// Calculate news count
// If APC is enabled - try to use CACHE
if (function_exists('apc_fetch') && (($af = apc_fetch('SQL{'.$query['count'].'}')) !== FALSE)) {
    $newsCount = intval($af);
} else {
    $newsCount = $mysql->result($query['count']);
    if (function_exists('apc_store')) {
	apc_store('SQL{'.$query['count'].'}', $newsCount, 30); 
    }
}

Естественно, для получения эффекта необходимо сначала установить и активировать APC smile

Не в сети

#2 2009-02-27 03:26:42

lexa
Участник
Зарегистрирован: 2008-10-26
Сообщений: 13
Рейтинг :   

Re: Использование PHP-акселераторов

А нафига для второго пункта альтернативный похапэ кэш? Результат (один на всех) можно и в файл впихнуть.

Не?

Не в сети

#3 2009-02-27 03:45:47

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: Использование PHP-акселераторов

Второй пункт делался после первого.
Соответственно, APC уже был. И, естественно, кеширование данных в APC значительно более эффективное, чем кеширование на файловой системе.

Естественно, можно использовать и файловый кеш, но в рамках данного примера (использование APC) было бы большим грехом не воспользоваться теми возможностями, которым нам предоставляет APC.

Не в сети

Подвал раздела

Работает на FluxBB