我正在使用xdebug和PHP进行一些性能分析。但是,当我不止一次运行相同的脚本时,我经常会遇到非常不同的时间。因此,很难知道将多少信心投入到结果中。
显然,在可能影响PHP性能的机器上发生了很多事情。但是我有什么办法可以减少变量的数量,所以多个测试更一致吗?
我在Apache下运行PHP,在Mac OS X上运行。
答案 0 :(得分:4)
ab
或siege
这样的基准测试工具来确保所有Apache孩子都被击中。curl
或wget
从命令行配置脚本,以便Apache只提供一个资源:脚本本身。通过省略其中一些步骤,可能会有争论获得更多“真实世界”的数字。我期待着这个问题可能得到的其他答案。
答案 1 :(得分:3)
有两个不同的任务,衡量绩效和发现问题。
为了测量所需的时间,您应该预期可变性,因为它取决于机器中还有什么。这很正常。
要查找问题,您需要了解的是各种活动所用时间的百分比。百分比不会随着其他因素的变化而变化太大,百分比的确切值无论如何都无关紧要。
重要的是,您发现活动负责健康的百分比,您可以修复,然后您修复它们。当你这样做时,你可以节省时间达到这个百分比,但这个发现就是你需要做的。测量是次要的。
补充:你可能想问“你不必为了找到而进行测量吗?” 考虑一个例子。假设您在打开调试的情况下运行程序,然后随机暂停它,并在关闭日志文件的过程中看到它。你继续它,然后再次暂停它,看到同样的事情。那么粗略的“测量”说它花了100%的时间来做这件事。当然,花在这上面的时间并不是100%,但不管它是什么,它都很大,你已经找到了它。那么也许你不必经常打开/关闭文件,或者其他东西。通常,需要更多样本,但不是太多。
答案 2 :(得分:1)