Записи с меткой «оптимизация»
Нагрузочное тестирование на скорую руку 09.09.2010 тестирование
Если у вас в команде нет тестировщиков, или вы сами тестировщик и очень ленивы, чтобы организовать нормальные тесты через jMeter или ab, но протестировать под нагрузкой свой любимый проект вам очень хочется, то это статья для вас =).
Подготовка
Все производимые далее действия идут с предположением, что у вас стоит один из дистрибутивов Linux
Тестирование мы будем проводить с помощью программы . В ubuntu ее установить можно командой:
-
sudo apt-get install siege
Если у вас не ubuntu, попробуйте установить из репозитория вашего дистрибутива с помощью штатных программ (yum, emerge), или скачать отсюда
Siege обладает достаточной функциональностью, чтобы определить максимальную пропускную способность вашего сервера. читать дальше»
Сравнение производительности методов выбора элементов из массива 25.08.2010 PHP
Во время профилирования php кода часто «всплывают» функции вызываемые несколько тысяч раз за время выполнения одного сценария. Такие функции необходимо жестко оптимизировать, так как потерянная миллисекунда выливается в итоге в секунду. Одной из частых ошибок встречаемых мной в различных программах является получения элемента массива, наличие которого неизвестно. Тут распространены несколько методов:
-
-
// Method 1
-
$a = @$array['asdfsdfsdfsdf'];
-
// Method 2
-
$a = null;
-
if (($array['asdfsdfsdfsdf'])){
-
$a = $array['asdfsdfsdfsdf'];
-
}
-
// Method 3
-
$a = null;
-
if (('asdfsdfsdfsdf', $array)){
-
$a = $array['asdfsdfsdfsdf'];
-
}
-
Я провел небольшое тестирование с целью выяснить, какой метод самый быстрый. читать дальше»
Отключение кэширования запросов в MySQL 20.08.2010 mysql
Когда перед вами встает задача оптимизации sql запросов, важно измерять «чистое» время запроса, чтобы определить прирост или регресс. Классическим способом заставить MySQL игнорировать кэш является ключевое слово SQL_NO_CACHE.
-
-
SELECT SQL_NO_CACHE * FROM `table` t LEFT JOIN ...
-
Если же вам нужно оптимизировать пачку запросов, это решение может быть не удобным. В таком случае можно отключить кэширование полностью, выполнив запрос:
-
-
SET GLOBAL query_cache_size=0;
-
— заново включить можно перезапустив MySQL или командой
-
SET GLOBAL query_cache_size=1024*1024*32;
-
Я думаю не стоит говорить, что использование второго способа на продакшен сервере чревато проблемами
Использование FirePHP через Zend Framework 03.07.2010 PHP
Во время отладки и оптимизации зачастую встает вопрос грамотного профилирования запросов в базу данных, вывод отладочной информации и просто логирования. В таких случаях крайне полезным может оказаться , дополнение к небезызвестному . К счастью разработчики zend позаботились об этом, и нам не надо изобретать велосипед или подставлять костыли для этого. Достаточно использовать расширения стандартных классов логирования и профилирования. читать дальше»