профилирование php: какие результаты являются нормальными?

В качестве тестового сервера используется мой компьютер (Windows 7, Amd Athlon X2, 1 GB RAM).

Мое приложение основано на Zend Framework. Он использует MySQL и Zend_Translation, а также Memcached в качестве кеша.

Я получаю время выполнения моего PHP-приложения с помощью простого microtime(): время выполнения 0,086215972900391 (когда кешируются данные БД и перевода)

Я хочу знать, являются ли мои результаты плохими, очень плохими или, может быть, нормальными. Как это узнать? Что я могу запустить на своем компьютере для сравнения? Или может есть другие способы? Или, может быть, мне не стоит беспокоиться, пока я не запущу его на более «настоящий» сервер?


person Community    schedule 20.10.2009    source источник


Ответы (3)


Это принципиальный вопрос, потому что...

  • Все бенчмарки разные.
  • Все приложения разные.

Лично я думаю, что ваше измеренное «время выполнения» более чем нормально. :) Однако вы можете провести несколько более комплексное тестирование, используя Apache Bench (ab) или jmeter. Таким образом, идея с ab и jmeter заключается в проведении нагрузочных тестов, чтобы определить, как ваше приложение работает, когда его используют несколько клиентов (пользователей).

Кроме того, для отличного бенчмарка полезно предоставить как можно больше деталей. Это будет включать настройку вашего оборудования (ЦП, ОЗУ, жесткий диск и т. д.), но также и ваше приложение. В противном случае трудно судить, насколько это эффективно.

В любом случае, в итоге 0,08 звучит неплохо! :-)

person Community    schedule 25.10.2009

Насколько хороши результаты, зависит от того, чего вы пытаетесь достичь. Посчитайте, сколько пользователей вы можете обслуживать на одном сервере, и сравните это с тем, сколько пользователей вы планируете/надеетесь привлечь для своего веб-сайта.

Сделав шаг вперед с точки зрения бизнеса, используйте эти цифры для расчета ожидаемых затрат на сервер в сравнении с ожидаемым доходом (на основе среднего дохода на пользователя).

person Community    schedule 25.10.2009

Попробуйте использовать httperf, чтобы определить, сколько одновременных обращений может обработать ваша установка.

Кроме того, есть отличный скринкаст от Peepcode, подробно объясняющий бенчмаркинг с помощью Httperf.

person Community    schedule 25.10.2009