【问题标题】:xdebug, having problems with profiler outputxdebug,探查器输出有问题
【发布时间】:2010-11-11 16:09:43
【问题描述】:

是的,自从观看Rasmus Lerdorf's talk on PHP performance 以来,我一直想分析我正在开发的 ERP / 会计应用程序,尤其是因为我知道它存在性能问题,分析应该突出我要调查的主要问题。

所以下载了xdebug并将以下几行放入我的php.ini文件中:

zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.profiler_output_dir="/home/me/xdebug/profiles/"
xdebug.ptofiler_enable_trigger=On

有了这个,我只需将我的浏览器作为我的应用程序,在查询字符串中使用 &XDEBUG_PROFILE 并开始分析。问题是我使用 KCacheGrind 查看的输出不包含我的应用程序中的任何功能,并且实体之间没有流动。

当页面执行时,我将配置文件(在终端中)复制到一个单独的文件中,以在整个配置文件中捕获它的状态。我将它们分别加载到 KCacheGrind 中,它们都显示了应用程序的完整配置文件,除了最后一个?

谁能告诉我为什么没有输出完整的个人资料?查看我复制文件的文件大小,前几个文件似乎相当大,但最后一个文件要小得多,xdebug 被捕获后是否在搞乱它们?

非常感谢:-)

编辑

只是为了提供帮助,这是我在打开其中一个复制的配置文件时看到的(在配置文件完成之前),我相信还有更多内容。

这就是我从最终配置文件中得到的,没有任何关系,只是一堆 PHP 函数。我想查看所有完整的个人资料。

编辑 2

所以在这里我不断地运行ls -als 命令,最后一个列表是缩减版本,上一个是最后一个ls 文件在它的完整大小。

我无法上传大文件,因为它的长度超过 300 万行,如果有帮助,请参阅 xdebug php 信息部分。

【问题讨论】:

标签: php performance optimization xdebug


【解决方案1】:

好吧,我自己确实解决了这个问题,我在我的php.ini文件中添加了这个选项:

xdebug.profiler_append=1

这会将数据附加到相同的文件名(如果存在),因此我需要确保文件名选项设置正确,但我认为这已经解决了我现在的问题。

感谢那些回答:-)

【讨论】:

  • 我推荐类似xdebug.profiler_output_name = "cachegrind.out.%t.%R" 的文件名选项。它为文件名加上时间戳,确保为每个分析会话生成一个唯一的文件名,并允许您按时间排序。它还包括帮助您区分跟踪的请求 URI。 (虽然我记得在 %R 在某些版本的 xdebug 或其他版本中工作之前需要使用 register_long_arrays 选项。)
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 2011-10-15
  • 2011-01-18
相关资源
最近更新 更多