2 Андрей «Rarst» Савченко — Rarst.net ♦ WPSE ( s.tk/wp ) — QueryPosts.com — Composer.Rarst.net — Команда Yoast.com

200мс граница интерактивности

цель №1 детализация 10мс

5 Интернет Вам врёт 1. Включить расширение для профилирования… 2. Загрузить страницу… 3. Найти созданный файл профиля… 4. Запустить просмотрщик… 5. Загрузить профиль в просмотрщик… Нет.

цель №2 0..2 кликов

7 Простая установка, мало подробностей — легко установить — минимальные требования — в основном итоговая информация

8 var_dump() профилирования printf( '%d queries in %.3f seconds, using %.2fMB memory', get_num_queries(), timer_stop( 0, 3 ), memory_get_peak_usage() / 1024 / 1024 ); // 3 queries in 0.251 seconds, using 4.42MB memory

9 Symfony Stopwatch $stopwatch = new Stopwatch(); $stopwatch->start( 'eventName' ); // some code goes here $event = $stopwatch->stop( 'eventName' ); echo $event->getDuration(); // 202 echo $event->getMemory(); // 3670016 symfony.com/doc/current/components/stopwatch

Laps — основные стадии загрузки — запросы к базе данных — HTTP запросы github.com/Rarst/laps

11 Сложная установка, много подробностей — (относительно) сложно установить — требуется бинарный PHP модуль — очень подробная информация

12 XHProf / uprofiler — открытое ПО — легкая нагрузка — lingua franca формат github.com/FriendsOfPHP/uprofiler

13 Blackfire — веб сервис — удобный интерфейс blackfire.io

15 Практичное профилирование — букмарклет для запуска — веб просмотрщик Полностью в браузере.

16 Фоновое профилирование — автоматизированный сбор — поиск аномалий — в разных контекстах

17 New Relic — сложная серверная установка — собирает из разных технологий — замечательно разжёвывает newrelic.com

18 WP Performance Profiler — WordPress расширение — чистое PHP ( без модуля ) — контекстный ( веб/крон/ajax ) wpperformanceprofiler.interconnectit.com

в понедельник установите Laps

а потом исследуйте результаты

21 Спасибо, что выслушали! Вопросы? @Rarst Rarst.net/slides/profiling-ru Rarst.net/slides/profiling-ru/code