gpt4 book ai didi

PHP/xdebug 分析器 require_once 性能不佳

转载 作者:搜寻专家 更新时间:2023-10-31 22:12:20 27 4
gpt4 key购买 nike

我刚开始使用 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 对象,它们都是以完全相同的方式构建的,没有任何问题。所有这些都位于相同的各自路径中。

最佳答案

这听起来确实很奇怪。绝对值得追求,尽管在没有看到实际代码的情况下很难确定。单个 require_once() 的总程序时间的 12% 听起来确实过多。

但这里有一些关于可能的调查途径的想法:

  1. require_once() 保留已包含文件的查找表,因此可能会减慢必须引用该查找表的速度。如果这是原因,您可以尽可能使用 require() 而不是 require_once() 来解决它。

  2. 也许是路径查找?您是否包含带有文件名的路径?如果没有,它会在很多地方检查以找到该文件;也许它不是它看起来的第一个地方,在包含它之前找到文件需要更长的时间。如果这是原因,您可以通过更具体地说明代码中的路径来解决它。

希望对您有所帮助。很想知道结果如何。

哦,顺便说一下——如果您的代码中最大的问题区域是 require_once(),那么听起来您的代码做得很好!我梦想有一天 require_once() 甚至会出现在我的分析器报告中,更不用说产生重大影响了。

关于PHP/xdebug 分析器 require_once 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com