[计划]
“Windows版本Apache+php的Xhprof应用__[1]”中已经解决了下载,配置的问题,所以这里的工作是接着进行的,我们以调试一个 php代码的文件来看看是怎么用xhprof的。另外我测试了一个非常简单php页面,页面本身还没有优化过,这样比较的清晰和直观,优化过的也看不出 xhprof的分析有啥价值了。
[目标]
分析我的多层次调度页面index.html的性能,说明一下,xhprof只能分析php代码的性能,我的.html文件本身支持嵌入的php代码解析,所以不是说xhprof可以分析.html文件。
[步骤]
  • 在apache的httpd.conf文件中,增加xhprof的路径配置,以方便分析性能时调度xhprof的库文件来分析php的代码性能,需要增加到httpd.conf的内容如下:
<Directory "M:/htdocs/xhprof_html/">
  Options FollowSymLinks ExecCGI
  AddHandler fcgid-script .php
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>
<Directory "M:/htdocs/xhprof_lib/">
  Options FollowSymLinks ExecCGI
  AddHandler fcgid-script .php
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>
<IfModule alias_module>
  Alias /xhprof_html/ "M:/htdocs/xhprof_html/"
  Alias /xhprof_lib/ "M:/htdocs/xhprof_lib/"
</IfModule>
  • 大概说一下,我的“xhprof_html”和“xhprof_lib”全部放在了M盘的htdocs目录里,你需要自己改为自己的路径,另外,我的开发 主要是在php以fast-cgi方式运行下调试的,因为我的生产环境用的是fast-cgi实现的,这里顺便说下,fast-cgi的确非常好,破机子 访问量翻番居然扛下来了,至少暂时不用去换硬件了,赞一个的说。
  • 下载和安装Graphviz,并修改xhprof的代码,然后实现输出调用过程的图形,百度搜索Graphviz关键字,然后到官方找到windows版 本的就可以了,网上还有其他网友制作的绿色版本,反正很容易得到,版本要在2.28以上最好,大家自己去找找吧,有网友说我第一篇里提供的地址下载不到那 个xhprof的dll文件,我只能说如果baidu里搜是木有的,要到google里去用英文模式搜,很容易找到,因为返回的结果很少啊。又跑题了,我 这里是把Graphviz安装到我的D:\WebServices目录的,如图1

图1
  • 装好了就放那别动了,等下备用,接下来到M:\htdocs\xhprof_lib\utils目录去修改callgraph_utils.php库文件,如图2
  • 如果是在widows环境下,$cmd 命令上面的参数 2 => array("file", "D:/tmp/error-output.txt", "a"),/dev/null需改成你自己定义的一个临时目录,后面文件名随便给否则就会出现shell错误

图2
  • 注意你的Graphviz是安装在哪里的,路径就添哪个位置,好了,到这里,就可以开始评估index.html的性能了,在需要进行性能分析的页面中增加代码,得到xhprof的调度过程分析结果,并输出直观的图形,在含php代码的页面顶端加入如图3代码
 

图3
  • 注释一下,第一段include放在头上,这个没啥可说的,注意,第二个红框指示的代码放的的位置很重要,因为这个代码上面的代码不会被分析的。
  • 在php代码的尾部加入如图4代码
 

图4

图4附图:报告链接
  • 注释一下,高亮的是查看性能分析页面的链接,注意你的apache配置,因为我这个例子是把xhprof直接放在了所有的开发站点的相对目录/xhprof_html/下的,如果你的另有花样,这里不写对,那永远也看不到xhprof分析的页面。
  • 加好了代码,就是到浏览器里面去直接执行含有xhprof指令的页面啦,执行和正常一样,不过页面的最低部增加了一个报告链接,如图5所示,点击就显示出了xhprof的函数工况报告

图5
  • 红色的就是性能瓶颈的部分,呵呵,清晰直观,希望大家成功!
[结论]
windows下面也可以像linux下面那样调试啦~

Windows版本Apache+php的Xhprof应用__[2]的更多相关文章

  1. Windows版本Apache+php的Xhprof应用

    [知识] {Apache} Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. {PHP} ...

  2. 下载windows版本apache网页服务器

    1.进入apache服务器官网http://httpd.apache.org/,这里我们以下载稳定版的httpd 2.4.25为例,点击download. 2.点击链接Files for Micros ...

  3. PHP环境配置-从Apache官网下载windows版apache服务器

    由于个人有强迫倾向,下载软件都喜欢从官网下载,摸索了好久终于摸清楚怎么从Apache官网下载windows安装版的Apache服务器了,现在分享给大家. 进入apache服务器官网http://htt ...

  4. WAMP(Windows、Apache、MySQL、php)安装配置过程常见问题

    WAMP(Windows.Apache.MySQL.php)安装配置过程 可以参考该网友的总结(总结的不错,鼓掌!!): http://www.cnblogs.com/pharen/archive/2 ...

  5. Windows下Apache+mod_python+Django配置

    Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...

  6. Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)

    如果您能点开这篇文章,说明您已对熟悉Apache HTTP Server(下文用Apache简称)配置的重要性已很清楚了,本文不在赘述,直接介入正题,请往下阅读: 为便于阅读,列出文章目录: 一.Ap ...

  7. Windows + Flask + Apache + wsgi踏坑总结

    据前人踏坑经历,拷贝如下: 1. Apache,mod_wsgi和Python都必须用相同版本的C/C++编译器生成,要么都是32位的,要么都是64位的,不能混用. 2. Apache和mod_wsg ...

  8. Windows版本redis高可用方案探究

    目录 Windows版本redis高可用方案探究 前言 搭建redis主从 配置主redis-28380 配置从redis-23381 配置从redis-23382 将redis部署为服务 启动red ...

  9. windows版本免安装redis, nginx, zookeeper

    redis官网:https://redis.io/ windows版本免安装redis下载链接:https://github.com/MSOpenTech/redis/releases nginx官网 ...

随机推荐

  1. 安装requests 库

    这是我见过最恶心的安装了,嘛的,以为公司网络限制.我无法上网 使用 PIP INSTALL REQUESTS .本来就一句话的时 我一直安装不成功.https://www.lfd.uci.edu/~g ...

  2. es6基础入门变量的解构赋值

    let [a, b, c] = [1, 2, 3]; let [foo, [[bar], baz]] = [1, [[2], 3]]; foo bar baz let [ , , third] = [ ...

  3. python编程实例-使用正则收集IP信息

    #!/usr/bin/env python from subprocess import PIPE,Popen import re def getIfconfig(): p = Popen(['ifc ...

  4. CANopenSocket CANopenCommand.c hacking

    /***************************************************************************** * CANopenSocket CANop ...

  5. UVA - 10570 Meeting with Aliens (置换的循环节)

    给出一个长度不超过500的环状排列,每次操作可以交换任意两个数,求把这个排列变成有序的环状排列所需的最小操作次数. 首先把环状排列的起点固定使其成为链状排列a,枚举排好序时的状态b(一种有2n种可能) ...

  6. ACM学习历程—HDU5696 区间的价值(分治 && RMQ && 线段树 && 动态规划)

    http://acm.hdu.edu.cn/showproblem.php?pid=5696 这是这次百度之星初赛2B的第一题,但是由于正好打省赛,于是便错过了.加上2A的时候差了一题,当时有思路,但 ...

  7. JavaWeb框架_Struts2_(三)---->Struts2的拦截器

    2. Struts2的拦截器(使用拦截器实现权限控制) 2.1 拦截器的概述 拦截器是Struts2的核心组成部分,它可以动态的拦截Action调用的对象,类似与Servlet中的过滤器.Struts ...

  8. 学习动态性能表(12)--v$db_object_cache

    学习动态性能表 第12篇--V$DB_OBJECT_CACHE  2007.6.4 本视图提供对象在library cache(shared pool)中对象统计,提供比v$librarycache更 ...

  9. spark流程跟踪

    每个action对应一个job,每个job里面会有很多个阶段(stage),其实每个stage都是一个算子(Operation),可能是transformation,可能是action:但是actio ...

  10. BZOJ4255:Keep Fit!

    浅谈\(K-D\) \(Tree\) 题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=4255 莫队加\(kd\) \(tree\),直接 ...