Практичное профилирование производительности

A presentation at WordPress Kitchen 2015 in October 2015 in Kyiv, Ukraine, 02000 by Andrey Savchenko

Slide 1

Slide 1

Slide 2

Slide 2

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

Slide 3

Slide 3

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

Slide 4

Slide 4

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

Slide 5

Slide 5

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

Slide 6

Slide 6

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

Slide 7

Slide 7

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

Slide 8

Slide 8

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

Slide 9

Slide 9

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

Slide 10

Slide 10

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

Slide 11

Slide 11

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

Slide 12

Slide 12

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

Slide 13

Slide 13

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

Slide 14

Slide 14

Slide 15

Slide 15

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

Slide 16

Slide 16

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

Slide 17

Slide 17

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

Slide 18

Slide 18

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

Slide 19

Slide 19

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

Slide 20

Slide 20

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

Slide 21

Slide 21

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