在上两期中我已经对 xdebug 最核心的操做已经进行了讲解。相信你能够摆脱写 var_dump($data);die; 的编写和完成调试后的清除了。这一期咱们来学习xdebug的第二个特点-性能分析。这一个功能,在实操中用的不是不少。php
使用场景:nginx
xdebug 是经过访问指定方法。生成性能分析文件,再经过分析软件进行查看性能结果。segmentfault
php.ini 添加配置windows
xdebug.profiler_enable=Off xdebug.profiler_enable_trigger=On xdebug.profiler_enable_trigger_value="create" xdebug.profiler_output_dir="/tmp/" xdebug.profiler_output_name="cachegrind.out.%R"
比较建议一个方法访问完后,生成分析文件,立刻进行性能分析,分析完后再清除文件。为了数据准确性,咱们还须要进行屡次对比。找性能参数的平均值来提升准确性。centos
咱们得知道那个依赖方法耗时最久,是什么缘由。有没有优化的可能。并发
咱们经过 tool -> Analyze Xdebug profiler Snapshot 打开性能分析文件 cachegrind.out. 打头的文件。就会进入如下界面phpstorm
一、了解各个选项的意思函数
time 列里有 数字和百分比。分别表明 执行时间和执行占用总时间百分比高并发
单位是 server 旁边的 time 那里进行设置.默认是 ms工具
这个可让咱们查看他的上一步执行了以什么操做。这个能够方便咱们在了解调用到这个函数的过程。
二、找到咱们关心的数据
咱们能够在 Execution statistics 标签里对 own time 进行排序取执行占用最多的内容。里面会包含文件和函数以及方法。若是咱们设置了 server 关联当前的项目,统计里的方法是能够进行跳转到项目的实际代码里。
咱们经过 Callees 标签查看函数里那些方法调用耗时最多
Execution statistics 标签里对 calls 进行排序取执行次数最多的函数或方法。
可经过下面的 Callers 查看那些地方对他进行了调用
若是你的项目不是多入口的类型,你保存的到一个文件就会出现性能分析文件不精确的状况。而我在上文中用的是 $_SERVER['REQUEST_URI'] 做为文件后缀。能够很好的区分性能分析文件。