我们可以使用基准测试工具,例如Apache Bench和Siege找出性能问题.从中可以看出性能问题.如果性能问题不是特别明显,就要使用分析器
分析器
xdebug 是一个流行的php分析工具,不过这个分析器只应该在开发环境中使用,因为它会消耗大量系统资源.之后通过webgrind显示分析结果
XHProf.这个工具在开发环境和生成环境都能使用,分析结果的展示也需要使用SHGUI这个工具
Xdebug
使用它分析应用的调用堆桟,能轻易找出瓶颈和性能问题
它是php的一个扩展,安装 pecl install xdebug 引入到php.ini中
xdebug.profiler_enable = 0 0:xdebug不自动运行.
xdebug.profiler_enable_trigger = 1 我们可以子啊php应用的任何一个url中加XDEBUG_PROFILE=1查询参数,在单个请求中启动xdebug.进行分析保存到xdebug.profiler_output_dir中
xdebug.profiler_output_dir = /data/appLog/xdebug 报告保存路径(需要提前创建好)
生成的报告类似于这个cachegrind.out.20654
然后安装查看报告的工具webgrind.下载好之后进行nginx配置
git clone https://github.com/jokkedk/webgrind.git
浏览器打开对应的webgrind地址,然后选择你要看的文件
第一项参数意思是把所有被调用函数/方法首先做一个排序,由高到低显示。然后取出前N个,使他们耗时比率之和在90-100%之间。
第二个就是选择profile文件。默认是分析最新一次的xdebug记录。
第三个选项是显示百分比/毫秒/微秒。
下面的彩色进度条一样的东东是耗时量比较条。蓝代表php内置函数,灰色代表requir/onclude,绿代表类方法,橙黄代表类其他过程函数 (用户自定义函数)
Invocation Count 被调用执行的次数
Total Self Cost - 函数自身开销耗时 毫秒/ 微秒 /百分比(并不包含调用其他函数)
Total Inclusive Cost - 综合耗时。包括自身耗时和调用所有的其他函数的耗时
Called From 调用者
Count 调用次数
Total Call Cost 总共耗时
参考
Modern PHP