- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚开始使用 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% 听起来确实过多。
但这里有一些关于可能的调查途径的想法:
require_once()
保留已包含文件的查找表,因此可能会减慢必须引用该查找表的速度。如果这是原因,您可以尽可能使用 require()
而不是 require_once()
来解决它。
也许是路径查找?您是否包含带有文件名的路径?如果没有,它会在很多地方检查以找到该文件;也许它不是它看起来的第一个地方,在包含它之前找到文件需要更长的时间。如果这是原因,您可以通过更具体地说明代码中的路径来解决它。
希望对您有所帮助。很想知道结果如何。
哦,顺便说一下——如果您的代码中最大的问题区域是 require_once()
,那么听起来您的代码做得很好!我梦想有一天 require_once()
甚至会出现在我的分析器报告中,更不用说产生重大影响了。
关于PHP/xdebug 分析器 require_once 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512241/
XDebug 无法打开远程调试文件 /var/log/xdebug/xdebug.log。 我尝试对文件 /var/log/xdebug/xdebug.log 授予 664 权限,但我现在所做的失败了
我正在尝试调试此代码: public function removeBlankLines() { $this->qp->find('br'); } // <-- break point
我正在尝试设置 Xdebug,因为我厌倦了使用 echoes 和 var_dumps。 我使用 Atom 作为我的 IDE 和 php-debug plugin . 我正在使用 laravel Hom
直到最近,我一直在用 PHP(通过 Notepad++)编写代码,并通过检查 IIS 中的日志进行调试(一定喜欢那个 Web 平台安装程序);从那时起,我决定更新到更高效的代码编写/测试环境,并在使用
当 XDebug 捕获错误时,是否可以在堆栈跟踪中显示文件的完整路径? 目前我刚刚得到这个: ../stack.php:47 但我宁愿看到这样的东西: C:\inetpub\wwwroot\mysit
xdebug ang php 的此消息的解决方法是什么? Xdebug: [Step Debug] Could not connect to debugging client. Tried: loca
PhpStorm 看不到 xdebug 但它已安装。在我的浏览器中 xdebug 工作正常。问题出在哪儿? 错误: Connection with 'xdebug' was not establish
昨天一切正常。今天我使用ctrl + F8添加断点并按ctrl + p,x d,不再有Xdebug Start Debugging(Launch Browser),只有Xdebug Start Deb
我有一个 OS-X 设置并使用 Netbeans IDE 进行 PHP 编程。我在以下路径中安装了 xdebug zend_extension="/Applications/MAMP/bin/php/
我无法让 XDebug 在 Windows 7 机器上与 PhpStorm 和 Vagrant 一起工作。我已经按照每个教程来让这个工作,但没有运气。 所以我试过的是: PhpStorm 始终监听调试
如果我通过设置xdebug.remote_enable=1来启用xdebug,apache服务器会变得非常慢;一旦我将设置更改为0,就正常了。 我在这里发现了同样的问题:XDebug really s
我已经搜索了很多关于 IntelliJ IDEA 12 和 xdebug.file_link_format 的信息。配置值。 我没有发现任何有用的东西...... 使用“idea”、“intellij
所以我试图让 sublime text 2 与 x-debug 一起运行我已经安装了 Kindari-SublimeXdebug 我有 wamp(我启用了 xdebug ) 这是 php.ini 配置
我对使用 Homebrew 不太熟悉,但我喜欢它。它是如此容易。我正在尝试安装 Xdebug。网络上的一些帖子说要这样做: brew install xdebug 但是这不起作用。我得到:错误,没有可
我用 High Sierra (10.13) 重新安装了我的 MacBook。它包含 Apache/2.4.27 和 PHP 7.1.7。 现在我想激活xdebug。请有人给我一些信息,该怎么做? 感
我不小心丢失了 /etc/php5/conf.d 文件夹中的 xdebug.ini 文件。当我尝试使用 apt-get 安装 xdebug 时,如何取回它,它给出如下注释。 Not replacing
我想在 Sublime Text 3 中更改 XDebug 插件的键绑定(bind)。如何更改 的键绑定(bind)运行 , 跳过 , 走进 , 走出 , ETC。? 最佳答案 这个答案更完整answ
当我写这条消息时浏览提示似乎这是一个棘手的问题,有各种补丁,但没有明确的答案......无论如何,我试试我的机会,就在这里。 我在 Ubuntu 10.04 上使用 Eclipse Helios PD
当我调试时,我想排除某些目录 - 例如,每次实例化一个类时,我的调试器都会进入 Doctrine 的 ClassLoader::loadClass() 这很烦人......我尝试添加那些我想排除的目录
我刚刚在OSX上安装了Xdebug v3.0.0beta1,并试图在PhpStorm 2020.1上使用它,但是我得到了: Xdebug: [Config] The setting 'xdebug.r
我是一名优秀的程序员,十分优秀!