Недавно я установил Zend Server 5, чтобы воспользоваться преимуществами трассировки кода, одновременно улучшив производительность в некоторых областях моего приложения.
Я просматривал некоторые из следов своего кода, для которых требовалось большое время запроса.
Иногда я вижу длинные ЗАПРОСЫ, когда только ~ 25% фактического времени уходит на фактическое выполнение кода (то есть с index.php)
Мне было интересно, знаком ли кто-нибудь с подобными вещами и был бы признателен за любую помощь.
Я не знаком ни с zend-server, ни с тем, как он вычисляет указанные вами метрики, но мне хотелось бы думать, что я немного разбираюсь в PHP, Apache и веб-материалах в целом.
Обычно время выполнения PHP составляет лишь небольшую часть общего времени, затрачиваемого на обслуживание запроса - существует значительная задержка в получении запроса по сети и распознавания его веб-сервером (хотя это, вероятно, не указывается / не включается в метрики). Я ожидал, что часы начнутся в этот момент. Затем веб-сервер передает запрос PHP, который должен загрузить и проанализировать соответствующие файлы кода. Это может занять относительно много времени и, следовательно, дает преимущество использования кеша опкодов. Затем, когда код действительно начнет выполняться, если ему придется читать какие-либо данные из файлов / базы данных / других, это будет значительными накладными расходами (и в большинстве случаев PHP будет спать, ожидая ответа). Даже после того, как сценарий PHP завершится, это еще не конец истории - процесс веб-сервера должен зависнуть, пока клиент не подтвердит все данные - часы все еще могут работать.
Вы можете сделать все, что угодно, для повышения производительности в сети, в коде PHP, в базе данных, в файловой системе и в браузере - слишком много, чтобы здесь ответить. Конечно, я не думаю, что это необычно, что PHP будет выполнять код только в течение 25% срока действия запроса (действительно, если что-то я подозреваю, это довольно много - подразумевая, что либо ваш код PHP очень неэффективен, либо все остальное работает очень хорошо).
HTH
С.