понедельник, 6 октября 2014 г.

Используем JProfiler для анализа производительности кода

Используем JProfiler для анализа производительности кода

06/01/2010Документация Joomla 1.5
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 
)
Т.е. грубо говоря, можно использовать этот класс для установки меток в нужном нам месте и в дальнейшем оценить производительность кода.

Комментариев нет:

Отправить комментарий