ДОСТИГНУТО:

01.11.2016-300 страниц в индексе Google;
19.01.2017-300 страниц в индексе Яндекса;
03.02.2017-40 ТИЦ;
05.02.2017- сайт принят в DMOZ каталог;

Анализ расхода памяти и времени исполнения кода расширений Joomla

.

dzhumla-komponentАнализ расхода памяти и времени исполнения кода расширений Joomla

Всем привет!

При создании собственного расширения для сайта на движке Joomla в большинстве случаев не помешает оценить объем расходуемой памяти и время исполнения кода скриптов, чтобы оптимизировать скрипты с целью снижения нагрузки на сервер и увеличения производительности создаваемого расширения. Помочь в этом может встроенный в Joomla класс JProfiler.

 

 

joomla1Рассмотрим на конкретном примере использование для Joomla ее родного класса JProfiler для оценки расхода памяти и времени исполнения кода расширений Joomla.

Для начала можно подготовить тестовый компонент, в котором можно будет проверить работу профилировщика JProfiler.
Создадим в каталоге /components/ своего сайта подкаталог /com_test_1/ и в нем файл, с таким именем: test_1.php, в который собственно и будем вставлять код для тестирования. В результате у нас должен получиться следующий локальный путь к файлу:
/components/com_test_1/test_1.php

Чтобы вызвать из браузера созданное нами расширение, нужно выполнить простой GET-запрос:

Правда Joomla может не очень охотно принять во внимание искусственно нами созданное расширение, и во избежание проблем просто вручную добавим в базу данных Joomla 1.6-2.5 в таблицу «префикс_extensions» расширение с именем «com_test_1».

Теперь настало время провести тест, чтобы измерить с помощью профилировщика время выполнения кода нашего расширения и расходуемую им память сервера. Для этого добавим в созданный нами ранее файл test_1.php следующий код:

Теперь вызовем на исполнение созданное нами расширение при помощи запроса GET из адресной строки браузера

В результате на экране мы должны получить от профилировщика JProfiler лог анализа расхода памяти и времени исполнения кода расширения Joomla.

В первой строке мы получили данные от метки «Начало» о том, что с момента начала работы нашего скрипта было израсходовано 4.47 MB памяти.

Во второй строке результаты метки «Метка №1» показали, что после занесения очень длинной строки в переменную $a нашего скрипта память была уже израсходована на 573 Кб больше.

Третья строка содержит отчет метки «Метка №2» и показывает, что после срабатывания в скрипте паузы (sleep (2);) и занесения второй очень длинной строки в переменную $b время выполнения скрипта заняло уже 2.005 секунды, а расход памяти увеличился еще почти на 2.861 Кбайт.

Ну и наконец в последней строке мы получили отчет от метки «Стоп», где видно, что общее время исполнения скрипта нашего фиктивного расширения составило 2,006 секунд, а объем занятой памяти снова уменьшился до начального значения в 4.47 MB, и в этом нам поспособствовала добавленная в скрипт функция unset ( $a, $b ), которая уничтожила переменные $a и $b и тем самым высвободила ранее занятую ими память.

Кроме приведенного в примере метода mark (‘Метка’) в других случаях возможно полезно будет использовать и другие методы класса JProfiler:

  • $p->getMemory () — получить информацию об использовании памяти в текущий момент;
  • $p->getBuffer () — возвращает массив всех меток, использованных методом mark (‘Метка’);
  • $p->getmicrotime () — возвращает текущее время;

Приведенный пример конечно слишком упрощен, но поняв методику применения профилировщика класса JProfiler вы сможете использовать его для анализа и оптимизации своих расширений для Joomla.

Ну вот и все!

БЕРЕГИТЕ СЕБЯ!

 




лайк

Эти красотки хотят чтобы ты их жестко лайкнул и даже несколько раз твитнул!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *