当实际代码执行仅占总请求的 25% 时,为什么我会看到很长的 PHP/Apache 请求?

当实际代码执行仅占总请求的 25% 时,为什么我会看到很长的 PHP/Apache 请求?

我最近安装了 Zend Server 5,以便利用它进行一些代码跟踪,同时提高应用程序某些区域的性能。

我一直在查看一些请求时间较长的代码跟踪。

有时我看到很长的请求时间,但只有约 25% 的时间用于实际代码执行(即从 index.php 开始)

我想知道是否有人熟悉这类事情并且愿意提供任何帮助。

答案1

我不熟悉 zend-server,也不知道它如何计算您提到的指标,但我认为我对 PHP、apache 和 web 方面有一点了解。

通常,PHP 执行时间仅占处理请求所需总时间的一小部分 - 在通过网络获取请求并被 Web 服务器识别的过程中存在显著的延迟(尽管这可能未在指标中报告/包含)。我希望时钟从此时开始。然后,Web 服务器将请求传递给 PHP,PHP 必须加载并解析相关的代码文件。这可能相对耗时 - 因此使用操作码缓存是有好处的。然后,一旦代码真正开始执行,如果它必须从文件/数据库/其他读取任何数据,这将是一个显著的开销(并且在大多数情况下,PHP 会在等待响应时处于休眠状态)。即使 PHP 脚本完成,故事也还没有结束 - Web 服务器进程必须挂起,直到客户端确认所有数据 - 时钟可能仍在运行。

有各种各样的方法可以提高网络、PHP 代码、数据库、文件系统和浏览器的性能 - 太多了,无法在此一一回答。当然,我认为 PHP 仅在请求生命周期的 25% 内执行代码并不奇怪(事实上,如果有什么不同的话,我怀疑这个比例相当高 - 这意味着要么您的 PHP 代码效率非常低,要么其他一切都运行良好)。

高血压

C。

相关内容