zoukankan      html  css  js  c++  java
  • [PHP] Xhprof 非侵入式使用指南

    一般使用 Xhprof ,按文档操作可以快速上手,文件头开启 Xhprof,应用结束处得到访问的url查看。

    这种使用方式可以快速看到效果,同时也有一些不好的地方:

    一是不利于重复利用写好的示例代码;二是你需要改不同的Web应用。

    怎样做到不在现有应用中加入无关紧要的代码,又能达到目的?

    php提供了一种机制:

    php.ini 中的 auto_prepend_file 允许我们每次php应用访问前都先执行某个文件;

    ( http://php.net/manual/zh/ini.core.php#ini.auto-prepend-file )

    register_shutdown_function() 允许我们注册某个函数,在php的最后执行;

    ( http://php.net/manual/zh/function.register-shutdown-function.php )

    利用上面的机制,我们就能让php在应用访问前执行 Xhprof 开启,访问结束后 Xhprof 关闭并记录.

    程序已经写好,下面是操作步骤,具体的源代码中也有:

    1. 装好 xhprof (pecl install xhprof-0.9.2),php.ini 加入 extension=xhprof.so
    2. 把 本文件、xhprof源代码中xhprof_html目录、xhprof_lib目录,三者放在web可访问根目录.
    3. 配置 php.ini 加入以下部分,并重启 php-fpm:

      xhprof.output_dir=/tmp

        ;auto_prepend_file=/home/www/Xhprof.php

        ( 可以不指定auto_prepend_file,而是在具体应用的 Nginx 配置中,访问php的区间段加入: )
        ( fastcgi_param PHP_VALUE "auto_prepend_file=/home/www/Xhprof.php"; )
        ( 这种方式更优一点,主要是不用影响整个php的行为. )

    4. 修改程序 configure 部分,一般情况需要改 $xhprof_lib_path 和 $supervise['urls']
    5. 访问你的任何web应用.
    6. 查看run_id:tail /tmp/xhprof.log
    7. 查看效果:http://localhost/xhprof_html/?run=58468d515bddd&sort=mu&source=xhprof_testing
        用run_id替换地址中的run.

    Source-code:https://github.com/farwish/php-lab/blob/master/func_reference/Xhprof.php

    Link:http://www.cnblogs.com/farwish/p/6139027.html

  • 相关阅读:
    mysql 行号
    java 异常链
    springsecurity密码加密
    java 四舍五入
    ArrayList的使用及原理
    java 匿名内部类
    java 克隆
    logback的配置
    信号量 Semaphore
    障碍器 CyclicBarrier
  • 原文地址:https://www.cnblogs.com/farwish/p/6139027.html
Copyright © 2011-2022 走看看