zoukankan      html  css  js  c++  java
  • window wamp下xhprof的安装使用,Graphviz配置

    在新的工作安排下来前赶紧把手上工作优化下,本来是靠xdebug+grindview来的,不过还是麻烦,就换上这个轻量级的性能测试了。网上搜的大多都是lamp环境下的,wamp下的倒是不多,而且不好用,于是整理了这篇教程。

    1.下载在这里 http://dev.freshsite.pl/php-extensions/xhprof.html 如果你下载不下来,可以给16090288@qq.com发邮件,说明版本。

    我使用的是wamp 2.2d 32位的 ,这里罗嗦一句,既然用windows的wamp了,就不要装64位了,毕竟都是开发环境,正式环境肯定是32位的

    这里下载两个文件 XHProf 0.10.3 for PHP 5.3 vc9.zip xhprof_html.zip

    2.安装。 这步骤很简单,把XHProf 0.10.3 for PHP 5.3 vc9.zip里面的dll文件重命名为 php_xhprof.dll 放在php的ext目录下,然后在php.ini配置里面加入配置(不要忘记创建对应的文件夹)

    [xhprof]
    extension=php_xhprof.dll
    ; directory used by default implementation of the iXHProfRuns
    ; interface (namely, the XHProfRuns_Default class) for storing
    ; XHProf runs.
    xhprof.output_dir=”d:/wamp/logs/xhprof_log”

    重启你的wamp即可,看看phpinfo()里面有没有对应的文件

    3.使用:

    xhprof_html.zip 这个文件解压到你想测试的网站根目录就好了

    现在网站一般使用的是框架,唯一入口这点最好了,直接在index.php里面写就好了,我用的是yaf框架

    1 <?php
    2 xhprof_enable();//开始
    3 require 'init.php';
    4 require 'conf/db.inc.php';
    5 $app = new Yaf_Application(BASE_PATH . "/conf/itxiangqin.ini");
    6 Yaf_Registry::set('config', Yaf_Application::app()->getConfig());
    7 $app->bootstrap()->run();
    8 $xhprof_data = xhprof_disable();//结束,然后写入文件,注意目录
    9 $XHPROF_ROOT = realpath(dirname(__FILE__).'/xhprof');
    10 include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
    11 include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
    12  
    13 // save raw data for this profiler run using default
    14 // implementation of iXHProfRuns.
    15 $xhprof_runs = new XHProfRuns_Default();
    16  
    17 // save the run under a namespace "xhprof_foo"
    18 $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
    19 echo "<a href='http://www.pztai.com/xhprof/xhprof_html/?run=$run_id&source=xhprof_foo'>分析</a>";//这里的pztai换成你自己的域名就好了,本地就localhost

    还在学习使用中,写上几个缩写的

    Inclusive Time 包括子函数所有执行时间。
    Exclusive Time/Self Time 函数执行本身花费的时间,不包括子树执行时间。
    Wall Time 花去了的时间或挂钟时间。
    CPU Time 用户耗的时间+内核耗的时间
    Inclusive CPU 包括子函数一起所占用的CPU
    Exclusive CPU 函数自身所占用的CPU

    以上内容大部分来自于google,我整理的而已,嘿嘿。

    如果想要进一步研究,可以参考这篇文章。

    ============================================

    但是我按照上面的最完后点击,

    [View Full Callgraph]

    总是报错:

    ( ! ) Warning: file_get_contents(e:/wamp/tmp/xhprof/tmp//d1dede98ac80af3210574c7f7145cfa2.png) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: No such file or directory in E:wampwwwxhprofxhprof_libutilscallgraph_utils.php on line 192
    ( ! ) Warning: unlink(e:/wamp/tmp/xhprof/tmp//d1dede98ac80af3210574c7f7145cfa2.png) [<a href='function.unlink'>function.unlink</a>]: No such file or directory in E:wampwwwxhprofxhprof_libutilscallgraph_utils.php on line 202

    找了半天原来是Graphviz的路径不对:

    config.php:

    <?php
    /*
     * Set the absolute paths on your system
     */
    define('ERROR_FILE', 'e:/wamp/logs/xhprof_dot_errfile.log');
    define('TMP_DIRECTORY', 'e:/wamp/tmp/xhprof/tmp/');
    define('DOT_BINARY', 'd:/Program Files/Grafika/Graphviz/bin/dot.exe');
    ?>
    

     ==》改成:

    <?php
    /*
     * Set the absolute paths on your system
     */
    define('ERROR_FILE', 'e:/wamp/logs/xhprof_dot_errfile.log');
    define('TMP_DIRECTORY', 'e:/wamp/tmp/xhprof/tmp/');
    define('DOT_BINARY', 'd:/Program Files/Grafika/Graphviz/bin/dot');
    ?>
    

     多了个“.exe”,太误导人了!

    http://blog.csdn.net/lanbingkafei/article/details/7707382

  • 相关阅读:
    Anglarjs 工具方法
    AngularJs $scope 里面的$apply 方法和$watch方法
    CentOS 下tomcat安装
    Phonegap Android 项目使用Cordova
    Phonegap 原生控件(Android)与html混合
    Phonegap 通信原理
    Phonegap 开发环境搭建
    Phonegap 通知 Notification
    Phonegap 工作原理
    Angularjs MVC
  • 原文地址:https://www.cnblogs.com/chuanheng/p/xhprof.html
Copyright © 2011-2022 走看看