Wamp上使用Webgrind

15
我刚刚安装了wamp,最新版本附带了webgrind,但我无法弄清楚它是如何工作的。它显示:
Select a cachegrind file above

就是这样了。

5个回答

16

Webgrind是一个解析和查看名为cachegrind的性能分析文件格式的工具。PHP扩展程序Xdebug可以(除其他非常有用的功能外)生成这种格式的文件。要使用webgrind,需要安装并启用Xdebug。

  1. 确保Xdebug已经安装并且工作正常(参见Xdebug文档获取相关信息)
  2. 通过请求本地PHP文件,让Xdebug生成一个性能分析报告
  3. 在浏览器中加载webgrind,并在弹出菜单中选择一个文件
  4. 点击“更新”按钮,希望一切都能正常运行

Google Code上的Wiki提供了更多关于配置webgrind的信息。


对我来说,最后一步没有产生任何东西(屏幕上没有变化),但是webgrind实际上正在进行更新调用。检查后发现,本地Web服务器正在输出一堆PHP通知(webgrind的问题),这些通知破坏了页面行为。我在webgrind文件夹中的.htaccess文件中添加了php_flag error_reporting E_NONE,然后一切正常! - userfuser

14

1) 从官网下载XDebug

2) 将所有DLL文件放入PHP扩展目录:C:\wamp\bin\php\php5.x.x\ext

3) 在位于C:\wamp\bin\php\php5.x.xphp.ini文件中添加以下行:

zend_extension = c:\wamp\bin\php\php5.3.0\ext\php_xdebug-2.1.0-5.3-vc6.dll

4) 还需要在您的php.ini文件中添加以下内容(首先搜索[xdebug]部分以确保其尚不存在):

[xdebug]
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:\wamp\www\webgrind\tmp"
xdebug.profiler_output_name = cachegrind.out.%t.%p

5)重启Wamp并验证已加载扩展程序。为此,在C:\ wamp \ www \中添加一个文件pi.php,并将以下代码放入其中:

<?php
    phpinfo();
?>

6) 打开浏览器,访问 http://localhost/pi.php 并查找 XDebug 以检查输出结果。

7) 从下载页面下载 Webgrind 并将其解压缩到您的 www 文件夹中。

8) 编辑位于 C:\wamp\www\webgrind\config.php 文件以更改存储目录:

static $storageDir = 'c:\wamp\www\webgrind\tmp';
static $profilerDir = 'c:\wamp\www\webgrind\tmp';

9) 在您提取代码的Webgrind目录中添加一个.htaccess文件,并将以下内容放入其中,以避免Webgrind对自身进行分析:

9)在您提取代码的Webgrind目录中添加一个.htaccess文件,并将以下内容放入其中,以避免Webgrind对自身进行分析:

php_flag xdebug.profiler_enable 0

10) 重新运行 http://localhost/pi.php 脚本生成一些分析数据。

11) 使用 http://localhost/webgrind 打开您的浏览器以显示结果。不要忘记点击 Update 按钮!

本答案基于 Jacob Moen 提供的答案。您可以在这里查看原始来源。


那么,如果那个博客消失或者那篇文章被移动了,会发生什么?仅有链接的问题在互联网上的生命周期有限,最好像 jokkedk 一样列出相关要点(或在评论中发布链接而不是“答案”)。 - Synetech
希望你能欣赏这份努力!;-) - Maxime
就我个人而言,我目前不使用Xdebug或webgrind,所以对我来说意义不大(尽管我正在研究它),但其他人肯定会很欣赏它,特别是在未来,当人们通过搜索引擎找到您的帖子或缓存/副本时,您链接的博客已不再可用。无论如何,仅提供链接的答案真的很不受欢迎,因为我刚才解释的原因,所以通过改进您的答案,它将不会被删除或转换为评论,事实上它会得到赞同。 ;-) - Synetech
请确保指定 xdebug 模块所在的目录。这可能是一个绊脚石 - Synetech

0
如果应用程序变慢,观察起来是很好的,因为Cachegrind的设置问题而遇到了一些麻烦。
祝好运!
我的设置是Wamp 2.4、Apache 2.4、PHP 5.4和MySQL 5.6。

0

更新PHP.INI文件,添加以下参数:

  • xdebug.profiler_enable = 1
  • xdebug.profiler_enable_trigger = 1

重新启动所有服务。

这样就可以了。


0

你不需要做太多的事情...

我只是编辑了这一行:

xdebug.profiler_enable = 1

就这样,伙计。完全可行!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接