图 7. 太空船应用程序的配置文件
Flat Profile 窗格(左面)显示了应用程序调用的所有函数(方法)。最左面的列展示了近似的累计总数,第二列展示了每种方法的单独测试,第三列列出了调用该方法的次数。在调用图表中使用有颜色的方块反映图表内容,这非常方便,能够很容易地将事件序列与其花费的时间关联起来。
很明显,构建阶段所使用的时间代价最昂贵。构建每一部分所需的系统开销(使用 Part 的构造器表示)次之。再看一下 PHP 自身的 define() 函数,它只花费了很少的开销。
最后,还可以查看内存的使用情况。从靠近顶部的下拉菜单中选择 Memory 和 Class,然后切换到顶部以及底部的 Types 和 Caller Map 选项卡。您看到的屏幕应该类似图 8。
图 8. 太空船应用程序的内存使用情况
找回周期
和其他众多 PHP 扩展一样,Xdebug 容易构建、安装快捷且易于配置 —— 所有这些工作 10 分钟内即可完成。如果您已经优化了 Apache 安装并且对应用程序进行了缓存,但是性能仍然很差,那么可以考虑一下代码的运行。算法是否有效?代码是否过于复杂?是否重复实现了 PHP 已提供的函数?
当然,如果不能判断出应用程序的瓶颈所在,那么就必须进行查找并加以修复。不要只凭猜测 —— 要进行分析!您可能会惊讶于宝贵的计算周期是如何被轻意耗费掉的。
并且永远不要忘记:要在生产服务器中禁用 Xdebug,因为启用它总会增加系统开销。