Вопрос

Оптимизация PHP-кода с помощью сравнительного анализа во время выполнения не вызывает затруднений.Отслеживайте время $start и $end с помощью microtime() вокруг блока кода — я не ищу ответа, который включает использование microtime().

Что я хотел бы сделать, так это измерить время, необходимое PHP для подготовки к запуску кода - время анализа кода/построения дерева кода операции.Я рассуждаю так: хотя легко просто включить() каждый класс, который вы мощь необходимо для каждой страницы вашего сайта, нагрузка на ЦП не может быть «бесплатной».Я хотел бы знать, насколько на самом деле «дорого» время синтаксического анализа.

Я предполагаю, что кэш опкода, такой как APC, нет часть сценария.

Прав ли я, что измерение времени синтаксического анализа в PHP должно происходить в mod_php?

РЕДАКТИРОВАТЬ:Если возможно, принимая во внимание $_SERVER['DOCUMENT_ROOT'] использование в коде было бы полезно.Для этого может потребоваться немного поработать с командными решениями (но они все равно будут ценными ответами).

Это было полезно?

Решение

Да.Есть.

<?php return; rest of the code ?>

или

<?php whole code; $%^parse erorr!@! ?>

а затем сравните время запуска пустого скрипта

time php empty.php

со временем, необходимым для запуска (или сбоя) обычного скрипта с упомянутыми выше дополнениями:

time php test.php

Я использовал этот метод для больших файлов, и PHP5.3 на Core2Duo 2,4 ГГц может анализировать от 1,5 до 4,5 МБ PHP-кода в секунду (конечно, это во многом зависит от сложности кода).

Другие советы

Для подробного анализа, который вы ищете, кажется, что вы реализуете Xdebug ( http://xdebug.org/ ) даст вам наибольшую информацию без необходимости разбивать ваш код на сегментированные части.

Одним из методов может быть определение времени выполнения скрипта из командной строки.

В Linux, например:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

Помогает ли это вообще? Возможно, это полезно для определения относительного времени между различными сценариями, но оно может не указывать время, затраченное на модуль Apache

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top