介绍上两期我已经讲解了xdebug的核心操作。我相信您可以通过编写var_dump($data);die;来逃脱惩罚。并在完成调试后进行清理。本期我们将学习xdebug的第二个特性——性能分析。这个函数在实践中用的不多。使用场景:高并发项目核心功能优化。代码优化是通过查看运行方法的耗时依赖性来执行的。环境描述windowsvagrant+vbox+centos7+nginx+phpphpstorm学前准备xdebug+phpstorm调试环境已经可以正常运行学习要点了解xdebug性能分析需要做那些配置知道如何阅读性能报告xdebug配置xdebug是通过访问的规定的方法。生成性能分析文件,然后通过分析软件查看性能结果。php.ini添加配置xdebug.profiler_enable=Offxdebug.profiler_enable_trigger=Onxdebug.profiler_enable_trigger_value="create"xdebug.profiler_output_dir="/tmp/"xdebug.profiler_output_name="cachegrind.out.%R"phpstorm分析性能文件比较建议的方法access完成后,生成分析文件,立即进行性能分析,分析完成后清除文件。为了数据的准确性,我们还需要进行多重比较。找到性能参数的平均值以提高准确性。我们需要知道哪个依赖方法花费的时间最长以及原因。有没有优化的可能。phpstormxdebug性能分析工具详解我们打开性能分析文件cachegrind.out。通过tool->AnalyzeXdebugprofilerSnapshot。你将进入如下界面1.理解各个选项的含义Refresh-刷新Executionstatistics-执行统计CallTrees-哪个函数调用了哪个函数Callable-ExecutedfileOwnTime-函数执行自己代码所花费的时间(不包括Callsto其他函数)Calls-调用的次数Callees-哪些函数被调用Callers-从哪里调用函数time之前的数字是什么意思?时间栏里有数字和百分比。表示执行时间和占总执行时间的百分比。单位是服务器旁边的时间来设置。默认是mscallees中的大部分方法都会出来一个折叠的图标。这有什么用?让我们检查一下他的前一步执行了以下什么操作。这样方便我们理解调用这个函数的过程。2.找出我们关心的数据的哪些部分执行时间最多。为什么我们可以在Executionstatistics选项卡中对自己的时间进行排序,得到执行耗时最多的内容。它将包含文件以及函数和方法。如果我们将服务器设置为与当前项目相关联,那么统计中的方法就可以跳转到项目的实际代码。我们使用Callees选项卡来检查函数中哪些方法调用花费的时间最多以及哪些方法被调用的次数最多。在Executionstatistics选项卡中,我们对调用进行排序并获取执行次数最多的函数或方法。您可以通过下面的来电者查看那些地方来给他打电话。系列文章xdebug安装配置xdebug实际使用xdebug性能分析【本文】FQA为什么要设置xdebug.profiler_output_name默认值不行?如果你的工程不是多入口类型的,保存到文件中性能分析文件会不准确。而我上面用的是$_SERVER['REQUEST_URI']作为文件后缀。分析文件可以很好地区分。
