繁体   English   中英

对在Apache中运行的PHP进行性能分析

[英]Profiling PHP running in apache

我想知道正在调用什么功能,以及在apache上运行的应用程序的每个请求什么时间。

是否有任何工具或任何其他方式可以获取此数据。
我也想知道每个功能要花费多少时间。

应用程序正在运行,无法停止。
因此,我需要在运行环境本身中获取详细信息。
提前致谢。

为此,最常用的行业工具之一是: http : //www.xdebug.org/

我已经虔诚地使用了很长时间! 从首页进行以下操作:

“ Xdebug扩展通过提供许多有价值的调试信息来帮助您调试脚本。Xdebug可以提供的调试信息包括以下内容:

* stack traces and function traces in error messages with:
      o full parameter display for user defined functions
      o function name, file name and line indications
      o support for member functions
* memory allocation
* protection for infinite recursions"

Xdebug可以编写一个分析文件 ,您可以在kcachegrindwincachegrind对其进行分析。

这取决于您是要主动配置还是被动配置。

诸如New Relic之类的被动工具在后台静默运行,并通过牺牲少量计算资源来收集有关所有请求的少量信息。 这些通常具有有关整个服务器堆栈的更多信息。 这些通常用于生产环境,听起来像您所需要的。

活动概要文件用于开发,并且每个请求仅运行一次,从而以性能损失为代价,收集了大量有关您正在处理的应用程序部分的大量信息。 最常见的PHP活动分析器可能是Xdebug

分析来自Xdebug的数据的方法:

注意:如果您使用虚拟机,vagrant,docker等,请确保将输出目录设置为共享卷,可在虚拟机外部访问

例如

(php.ini) xdebug.profiler_output_dir = "/project_root/tmp"

如果使用PHPStorm:

  • Tools > Analyse Xdebug Profiler snapshot...

对于在MacOS上使用Xdebug的用户:

使用自制软件安装qcachegrind和AppViz

  • brew install qcachegrind

  • brew install graphviz

然后从命令行运行它:

qcachegrind cachegrind.out.1394

或只运行qcachegrind并使用GUI导航器打开xdebug生成的cachegrind文件

有几种PHP分析工具,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM