Используем JProfiler для анализа производительности кода
JProfiler является классом для анализа производительности вашего кода. Он позволяет проследить следующее:
Application Start: 0.000 seconds, 0.10 MB
\_______/ \___/ \__________/ \_____/
. | | | |
. prefix label time memory
- prefix - служит в качестве идентификатора для отдельных объектов JProfiler (см. ниже);
- label - название метки производительности;
- time - время от создания объекта JProfiler до установленной метки;
- memory - память, выделеямая Вашему скрипту в тот момент, когда устанавливается метка производительности.
Класс JProfiler обеспечивает метод GetInstance , который мы можем назвать статическим. Он служит для организации глобальной точки доступа отдельных объектов JProfiler. Он сохраняет массив созданных объектов и предоставляет доступ к ним на основании префиксов, которые могут быть предоставлены в качестве аргумента. Кроме того, если объект с требуемым префиксом отсутствует, то метод GetInstance создаст его.
Подключается
jimport( 'joomla.error.profiler' );
Пример
$p = JProfiler::getInstance( );
$p->mark('Start');
$a = str_repeat("hello world!\n", 100000);
$p->mark('Middle');
unset($a);
$p->mark('Stop');
print_r($p->getBuffer());
Резултьтат этого кода будет примерно следующий:
Array (
[0] => Start: 0.000 seconds, 3.87 MB
[1] => Middle: 0.002 seconds, 5.11 MB
[2] => Stop: 0.002 seconds, 3.87 MB
)
Так же можно использовать использовать следующий метод
$p = JProfiler::getInstance('Application');
Результат будет в виде массива:
Array (
[0] => Application afterLoad: 0.005 seconds, 0.27 MB
[1] => Application afterInitialise: 0.163 seconds, 2.55 MB
[2] => Application afterRoute: 0.196 seconds, 3.09 MB
[3] => Application Start: 0.253 seconds, 3.87 MB
[4] => Application Middle: 0.255 seconds, 5.11 MB
[5] => Application Stop: 0.255 seconds, 3.87 MB
)
Т.е. грубо говоря, можно использовать этот класс для установки меток в нужном нам месте и в дальнейшем оценить производительность кода.
8