Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

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

Использование 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 :)

Вне форума

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

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

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

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

Не?

Вне форума

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

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

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

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

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

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.011 сек, 7 запросов выполнено - Использовано памяти: 522.15 Кбайт (Пик: 550.27 Кбайт) ]