6

我已经在我的 PC(使用 Windows 10)上安装了 Apache 2.4 和 PHP 5.6。

启用 Xdebug 后,PHP 的运行速度比没有 Xdebug 时慢 10 倍(!)。

这是php.ini配置:

zend_extension = "php_xdebug-2.3.3-5.6-vc11-x86_64.dll"
xdebug.remote_autostart = 0
xdebug.profiler_enable = 0
xdebug.profiler_output_dir = "C:\PHP\tmp"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_mode=req
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
xdebug.trace_output_dir = "C:\PHP\tmp"
xdebug.auto_trace = 0
xdebug.var_display_max_depth = 3
xdebug.remote_connect_back = 0

我已确保禁用探查器和自动启动。有谁知道这种行为的原因是什么?

4

1 回答 1

1

来源:https ://www.phase2technology.com/blog/profiling-production-whats-slowing-you-down

解释型语言(如 PHP 和 Javascript)中的检测涉及到挂钩到运行时并在发生时显式收集有关每个函数调用的信息。这允许您查看已用时间、堆栈中函数调用的调用图、内存和 CPU 统计信息,以及代码在每个请求上执行时的其他系统数据。然而,仪表化分析确实增加了开销,而且可能很重要。这取决于您的应用程序的复杂性。这使得仪表化分析成为开发和调试会话的理想选择,但对于持续的生产分析和监控来说是有限的。

仪器的一个很好的替代方法是基于样本的分析。

基于样本的分析涉及以固定的时间间隔拍摄应用程序的快照。每个快照记录当前执行的函数,这些快照的聚合用于估计代码中花费的时间和地点。这提供的细节比检测分析少得多,但没有显着增加的开销,因此非常适合生产使用。

查看sample_prof以获取使用 PHP 进行基于样本的分析的示例。

于 2018-03-28T20:59:56.547 回答