如何看懂XDEBUG+WEBGRIND?(转)

看到一个很有用的东东,收藏。。

http://blog.csdn.net/yukon12345/article/details/11408617

~~~~~~~~~~

使用:                                                                       
设置好后就可以重启wamp来看看效果:
我们使用XDEBUG_PROFILE作为url的一个参数写在某个页面上后,转入页面,然后到xdebug.profiler_output_dir所定的路径下,就会发现生成了一个cachegrind.out.开头的文件,这就是webgrind需要分析的文件
进入webgrind主页面:页面很简单,右上角有一排下拉列表

第一项参数参数其实我也纠结了一下,怎么才容易想清楚和说明白:

webgrind把所有被调用函数/方法首先做一个排序,由高到低显示。然后取出前N个,使他们耗时比率之和在90-100%之间。

要注意的是,最好不要选择100%,这样将会显示所有被调用的函数/方法,如果是一个代码复杂的页面,那么webgrind偶尔会被卡死。并且通常我们只要关注耗时前几名的函数即可。

第二个就是选择profile文件。默认是分析最新一次的xdebug记录。如果之前设置好路径和记录机制那么我们就会发现下拉列表里有很多选项。

第三个选项是显示百分比/毫秒/微秒。

下面的彩色进度条一样的东东是耗时量比较条。蓝代表php内置函数,灰色(这里占用很小看不出)代表requir/onclude,绿代表类方法,橙黄代表类其他过程函数 (用户自定义函数)

结果查看                                                               

然后下面的分析列表的样子:(选了毫秒作为显示单位)

 

对于其中一些参数,我在结合我的官网翻译以及stackoverflow看到的解释是这样的:

Invocation Count
被调用执行的次数

Total Self Cost - 函数自身开销耗时  毫秒/ 微秒 /百分比(并不包含调用其他函数)
Total Inclusive Cost - 综合耗时。包括自身耗时和调用所有的其他函数的耗时

细节分析                                                                   

我经过试验,才明确了解了几个数据的区别:

测试代码:

[php] view plaincopyprint?

 

  1. <?php  
  2. //仅使用内置函数  
  3. function t1(){  
  4.     time();  
  5. }  
  6. //自定义函数外再执行一次  
  7.  time();  
  8.  sleep(1);  
  9. t1();  
  10. //t2调用自定义函数  
  11. function t2(){  
  12.    t1();  
  13. }  
  14. t2();  
  15. //增加内置函数耗时  
  16. function t3(){  
  17.       sleep(1);  
  18. }  
  19. t3();  
  20. //t4增加调用自定义函数t3一次。  
  21. function t4(){  
  22.    t3();  
  23.    sleep(1);  
  24. }  
  25. t4();  
  26. //t5增加非调用函数式内耗 for循环10万次,并调用t4  
  27. function t5()  
  28. { $u=0;  
  29.   for($i=0;$i<100000;$i++)  
  30.   {  $u+=$i;   }  
  31.   t4();  
  32. }  
  33. t5();  
  34. ?>  

得出:

 

因此我们可以得出最终结论:                             

  1. invocation count 表示的是整个php页面从载入到执行完毕呈现,各种函数被调用的总次数(如sleep不管被哪个函数调用,总共页面期执行了6次,t3被t4直接调用、t5间接调用一次,自身执行一次)
  2. total self cost 表示的是函数自身消耗(就如t5中10万次循环消耗了31毫秒,sleep执行了2000毫秒,但自身消耗并不把其他任何函数调用算在其中)
  3. total inclusive cost 表示的是此函数从开始到执行完毕所用消耗 ,包括自身消耗和调用其他函数消耗

点击一个父函数名后出现展开:

  1. Calls - 此函数中调用并执行的所有函数/方法名 次数 及耗时
  2. Total Call Cost - 被此父函数调用时,执行的总耗时 (the total time executing this function, when called from the parent function)
  3. Count - 被此父函数调用时,执行的次数。number of times the parent calls the child
时间: 2024-10-26 05:43:18

如何看懂XDEBUG+WEBGRIND?(转)的相关文章

先看懂列表,再正确使用列表

  引言 随着公司朝互联网转型的脚步,目前我们已经有几十个移动APP上线,但是各个应用之间的设计策略和规范的差异性导致我们自身的设计品牌难以凸显,略显杂乱;而交互原则的差异性则导致每个应用之间的交互方式差异颇大,明明是同一个系列同一个类型的应用,却用了两种截然不同的交互框架,给用户的学习和使用上带了了很多不便. 在这种情况下,我们用户体验部通过成立这个移动专项研究小组来进行分步骤.长期的移动应用设计模式研究,希望能够通过我们的努力,不断改进我们的移动应用设计模式,最终将我们金蝶品牌的移动应用在易

如何让搜索引擎看懂你的网站结构层次

听到这个标题有些阅读者认为这很俗气,所说的越是俗气东西,别人才关注,呵呵!从标题看出来,这也明确的表达出来意思,就是让搜索引擎看懂你的网站是干什么,网站层次结构合不合理,如果说搜索引擎看不懂,更别提客户能看懂你的意思.所以说这个也网站结构占了很大比例,网站结构层次很清晰,你的网站就会容易受到百度蜘蛛的欢迎,会很快收录你的网站内容. 一.网站结构要像"树" 为什么说要像"树结构",从图   从这个图中我可以看出来,客户或者搜索引擎很快就能找到它想要的东西,很清晰的表达

让别人看懂你的PPT设计

没有精彩的演讲,没有专业的配音,在没有你"辅助"的情况下别人是否时候依然能看懂你的PPT,你是否有效的展现出你的内容?我想很多人都或多或少的会有所欠缺吧. 当然好的文案+优秀的设计才是制胜的关键,所以不要给我讲PPT设计只是次要的.别人总是希望能够轻松而有效率地阅读,会尽量的回避搜索页面内容,并且希望能够从PPT文案中获得新鲜的.美的剌激,或者是获得有用的东西. 第一丨轻松阅读 现在越来越多的个性化的PPT设计涌现出来,这是好的现象.我却认为这只适合个人爱好,可能个性和平庸之间必须找到

如何让别人看懂你的PPT设计

  没有精彩的演讲,没有专业的配音,在没有你"辅助"的情况下别人是否时候依然能看懂你的PPT,你是否有效的展现出你的内容?我想很多人都或多或少的会有所欠缺吧.当然好的文案+优秀的设计才是制胜的关键,所以不要给我讲PPT设计只是次要的.别人总是希望能够轻松而有效率地阅读,会尽量的回避搜索页面内容,并且希望能够从ppt文案中获得新鲜的.美的剌激,或者是获得有用的东西. 1 .轻松阅读 现在越来越多的个性化的PPT设计涌现出来,这是好的现象.我却认为这只适合个人爱好,可能个性和平庸之间必须找

看懂SqlServer查询计划

原文:看懂SqlServer查询计划 对于SQL Server的优化来说,优化查询可能是很常见的事情.由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划.毕竟我对SQL Server的认识有限,如有错误,也恳请您在发现后及时批评指正. 首先,打开[SQL Server Management Studio],输入一个查询语句看看SQL Server是如何显示查询计划的吧. 说明:本文所演示的数据库,是我为一个演示程序专用准备的数据库,

三分钟看懂阿里云在成都发布哪些产品?

本文讲的是三分钟看懂阿里云在成都发布哪些产品?[IT168 现场报道]3天,150多个国家,20多台万终端设备,一场突如其来的WannaCry蠕虫勒索病毒,让全世界意识到了网络世界的风险以及安全技术的重要性.5月23日,在云栖大会·成都峰会上,阿里云再次传递了基于数据智能的理念和安全技术,也发布了帮助初创企业解决"安全"的问题"产业安全扶助计划"--为100家创业公司提供免费安全防护. 同时,阿里云也推出了多项新技术.新产品,包括支持12层4K画质非编的云端文件存储

云栖长卷:一张图看懂云栖七年

7年前投下的一颗石子,7年后已经激荡成为一段壮阔的波浪. 2010年,与阿里云共同起步的,还有一场让中国互联网开始接触.了解云服务的大会--云栖大会. 云栖长卷一张图看懂云栖七年 ▼

我们专访了神龙云服务器产品负责人,看懂阿里云发布的“神龙”到底“神”在哪里

2017年杭州云栖大会上,阿里云副总裁李津发布了一款被称为神龙的云服务器产品,神龙刚刚亮相,就在业界引发一阵惊呼,小编为了帮助大家看懂神龙,在云栖大会期间,专访了神龙的产品负责人张献涛,看看他将给大家介绍一个怎样的神龙. 1.神龙云服务器引发惊呼的原因是跨界,这个虚拟机和物理机跨界的产品有哪些优势? 神龙云服务器从原理上来看是基于虚拟化的产品,但是又通过巧妙的设计是计算性能得以完整的保留,而同时又可以获得虚拟机一样在管理上的各种优势,这是神龙云服务器区别于其他物理机的最大不同. 比起传统的IDC

六张图看懂 Amazon Go智能购物,专利文件解密AI 核心技术细节

亚马逊Go推广视频:1分钟,颠覆你对线下实体购物的认知 几天前,就在亚马逊迎来可能是公司史上最大的 Holiday Season时,亚马逊发布了一段介绍旗下新的零售商店 Amazon Go 的视频,消费者可以直接走进商店,拿下货架上的货物,然后离开.整个过程不需要排队,也不用结账. <福布斯>的记者 Ryan Mac 说:"这看起来非常有趣,充满了未来感,但是,至少目前为止,这一切还都只是宣传." 每年从感恩节到圣诞节的长假中,亚马逊都会成为媒体上的最大赢家.2013年,B