【发布时间】:2012-07-15 18:27:17
【问题描述】:
我刚开始使用 xdebug 来分析我的应用程序,并立即注意到结果中有一些奇怪的地方。 require_once 函数之一显示占用大约 12% 的处理时间。在整个应用程序中还有很多其他对require_once 的调用,它们都占用了不到 1% 的处理时间。
性能不佳的require_once 包含的文件与其他任何文件都没有显着差异或更大,所以我不确定是什么导致了问题。有没有其他人经历过这样的事情?
编辑:想提供更多信息。我正在使用 XAMPP 在 Windows 上进行分析。通常,该应用程序在 unix 机器上运行。我没有一个简单的方法可以将 xdebug 安装到盒子上,所以我可能无法尝试以这种方式比较结果。
最后一次编辑:以下是代码的想法,以防万一(出于标准的 CYA 法律原因,故意含糊不清):
这个类是包含速度慢的类(test.inc):
require_once('/xx/yy/zz/dao/basedao.inc');
require_once('/xx/yy/zz/vo/test.inc');
class TestDAO extends BaseDAO {
// bunch of code to handle database records and return VO objects
这是包含的文件:
require_once('/xx/yy/zz/vo/basevo.inc');
class Test extends BaseVO {
// bunch of properties, getters/setters, that kinda stuff
我还有很多其他的 VO/DAO 对象,它们的构建方式完全相同,没有任何问题。所有都位于相同的各自路径内。
【问题讨论】:
-
最后一件事:您提到您无法在 Linux 平台上进行调试。您可以尝试在本地 PC 上创建 VM,以便在本地运行 Linux 副本。与 Windows 系统相比,它可能会让您更准确地了解您的代码是如何远程运行的。
-
好建议,我明天试试!
-
我终于从 Linux 上的代码中得到了一些分析器结果,一切都在我最初的预期中...... :|大部分处理时间都花在您期望的地方,例如数据库调用和磁盘 IO。之前突出的包含仍然稍微慢一些,但并没有那么大的差距。看起来这个文件是第一个包含一些其他常见文件的文件,所以它会稍微慢一点是有道理的。从现在开始,我将避免像瘟疫一样在 Windows 上进行基准测试,因为我对不同的结果没有任何解释。
标签: php profiler xdebug require-once