目录
php性能分析工具,php性能分析
一、前言
二、安装
三、php.ini配置
四、重启服务
五、使用方法
六、注意问题以及名词解释
七、参考资料
首页 后端开发 php教程 php性能分析工具,php性能分析_PHP教程

php性能分析工具,php性能分析_PHP教程

Jul 13, 2016 am 09:44 AM
性能分析

php性能分析工具,php性能分析

一、前言

  有用的东西还是记录下来吧,也方便以后的查询;这次记录一下xhprof的安装使用;

  xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,

  还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。

二、安装

<span>1.    wget http:<span>//</span><span>pecl.php.net/get/xhprof-0.9.3.tgz  </span>

2.    tar zxf xhprof-0.9.3.<span>tgz  

</span>3.    cd xhprof-0.9.3/<span>extension

</span>4.    /usr/bin/<span>phpize 
     (php版本安装后生成的phpize文件,可根据phpinfo查看,所以php版本不同,生成的phpize也不同,此步骤主要生成configure文件)

</span>5.    ./configure  &ndash;with-php-config=/usr/bin/php-<span>config  
    (php</span>-<span>config的路径,也是php安装后生成的文件)  

</span>6.<span>    make  

</span>7.<span>    sudo make install 
    (会自动将生成的扩展文件拷贝到扩展目录中</span>/usr/lib64/php/<span>modules)

    当然具体的php文件的目录,每个人不尽相同,可根据phpinfo查询</span></span>
登录后复制

三、php.ini配置

<span><span>1</span> <span>根据phpinfo找到 extension_dir的目录
</span><span>2</span> (/etc/php.d/xhprof.<span>ini)
</span><span>3</span> 
<span>4</span> <span>添加一下内容:
</span><span>5</span> 
<span>6</span> extension=xhprof.<span>so
</span><span>7</span> xhprof.output_dir=/tmp/xhprof <span>//</span><span>xhprof的分析日志</span></span>
登录后复制

四、重启服务

<span><span>1</span> sudo /etc/init.d/<span>http restart
</span><span>2</span> 
<span>3</span> 查看phpinfo是否安装成功</span>
登录后复制

五、使用方法

<span><span> 1</span> <span>开头:
</span><span> 2</span> xhprof_enable(); <span>//</span><span>开启监测  
</span><span> 3</span> <span>//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不记录内置的函数  
</span><span> 4</span> <span>//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  同时分析CPU和Mem的开销  
</span><span> 5</span> 
<span> 6</span> <span>//要测试的代码</span>
<span> 7</span> ...
<span> 8</span> ...
<span> 9</span> ...
<span>10</span> 
<span>11</span> <span>结尾:
</span><span>12</span> <span>$xhprof_data</span> = xhprof_disable();  <span>//</span><span>停止监测,返回运行数据</span>
<span>13</span> <span>$xhprof_root</span> = '/(xhprof的虚拟主机目录)/'<span>;  
</span><span>14</span>  <span>//</span><span>引入当初安装到xhprof虚拟主机目录中的文件</span>
<span>15</span> <span>include_once</span> <span>$xhprof_root</span>."xhprof_lib/utils/xhprof_lib.php"<span>;  
</span><span>16</span> <span>include_once</span> <span>$xhprof_root</span>."xhprof_lib/utils/xhprof_runs.php"<span>;   
</span><span>17</span> <span>$xhprof_runs</span> = <span>new</span><span> XHProfRuns_Default();   
</span><span>18</span> <span>$run_id</span> = <span>$xhprof_runs</span>->save_run(<span>$xhprof_data</span>, "xhprof"<span>);
</span><span>19</span> <span>echo</span> '<a href="http://(xhprof的虚拟主机域名)/xhprof_html/index.php?run='.<span>$run_id</span>.'&source=xhprof" target="_blank">xhprof统计</a>'<span>;  </span></span>
登录后复制

  上边的代码使用了,给xhprof设置虚拟主机的方法。

  把源码包中的 xhprof_html 和 xhprof_lib 文件夹拷贝到自己建立的虚拟目录中

  cp -r xhprof_html xhprof_lib /xxx/xhprof/ (此处目的是建立数据分析目录,可将此目录配置成虚拟主机访问)

  运行后,统计点击返回的 xhprof统计 链接,即可。

六、注意问题以及名词解释

  在显示的统计页面中,点[View Full Callgraph]图形化显示(最大的性能问题会用红色标出,其次是黄色);

  点击后,可能提示错误消息,执行以下命令即可

<span><span>1</span> yum install -<span>y graphviz
</span><span>2</span> yum install graphviz-gd</span>
登录后复制

  名词解释

<span><span> 1</span>     <span>Function</span><span> Name 函数名
</span><span> 2</span> <span>    Calls 调用次数
</span><span> 3</span>     Calls%<span> 调用百分比
</span><span> 4</span>     Incl. Wall <span>Time</span><span> (microsec) 调用的包括子函数所有花费时间 以微秒算(一百万分之一秒)
</span><span> 5</span>     IWall%<span> 调用的包括子函数所有花费时间的百分比
</span><span> 6</span>     Excl. Wall <span>Time</span> (microsec) 函数执行本身花费的时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒)
</span><span> 7</span>     EWall%<span> 函数执行本身花费的时间的百分比,不包括子树执行时间
</span><span> 8</span>     Incl. CPU(microsecs) 调用的包括子函数所有花费的cpu时间。减Incl.<span> Wall Time即为等待cpu的时间
</span><span> 9</span>     减Excl.<span> Wall Time即为等待cpu的时间
</span><span>10</span>     ICpu% Incl.<span> CPU(microsecs)的百分比
</span><span>11</span>     Excl. CPU(microsec) 函数执行本身花费的cpu时间,不包括子树执行时间,<span>以微秒算(一百万分之一秒)。
</span><span>12</span>     ECPU% Excl.<span> CPU(microsec)的百分比
</span><span>13</span>     Incl.<span>MemUse(bytes) 包括子函数执行使用的内存。
</span><span>14</span>     IMemUse% Incl.<span>MemUse(bytes)的百分比
</span><span>15</span>     Excl.MemUse(bytes) 函数执行本身内存,<span>以字节算
</span><span>16</span>     EMemUse% Excl.<span>MemUse(bytes)的百分比
</span><span>17</span>     Incl.PeakMemUse(bytes) Incl.<span>MemUse的峰值
</span><span>18</span>     IPeakMemUse% Incl.<span>PeakMemUse(bytes) 的峰值百分比
</span><span>19</span>     Excl.PeakMemUse(bytes) Excl.<span>MemUse的峰值
</span><span>20</span>     EPeakMemUse% EMemUse% 峰值百分比</span>
登录后复制

七、参考资料

<span>1</span> <span> http://blog.csdn.net/maitiandaozi/article/details/8896293
</span><span>2</span> <span> http://www.cnblogs.com/wangtao_20/archive/2011/03/16/1986508.html
</span><span>3</span> <span> http://www.cnblogs.com/wangtao_20/archive/2013/09/13/3320497.html
</span><span>4</span>  
<span>5</span> <span> http://avnpc.com/pages/profiler-php-performance-online-by-xhprof
</span><span>6</span> <span> http://www.ituring.com.cn/article/132392
</span><span>7</span>  http://www.ituring.com.cn/article/133062?utm_source=tuicool
登录后复制

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1048770.htmlTechArticlephp性能分析工具,php性能分析 一、前言 有用的东西还是记录下来吧,也方便以后的查询;这次记录一下xhprof的安装使用; xhprof是facebook开...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1671
14
CakePHP 教程
1428
52
Laravel 教程
1331
25
PHP教程
1276
29
C# 教程
1256
24
如何使用php扩展XDebug进行强大的调试和性能分析 如何使用php扩展XDebug进行强大的调试和性能分析 Jul 28, 2023 pm 07:45 PM

如何使用PHP扩展Xdebug进行强大的调试和性能分析引言:在开发PHP应用程序的过程中,调试和性能分析是必不可少的环节。而Xdebug是PHP开发者常用的一款强大的调试工具,它提供了一系列高级功能,如断点调试、变量跟踪、性能分析等。本文将介绍如何使用Xdebug进行强大的调试和性能分析,以及一些实用的技巧和注意事项。一、安装Xdebug在开始使用Xdebu

麒麟8000与骁龙处理器性能分析:细数强弱对比 麒麟8000与骁龙处理器性能分析:细数强弱对比 Mar 24, 2024 pm 06:09 PM

麒麟8000与骁龙处理器性能分析:细数强弱对比随着智能手机的普及和功能不断增强,处理器作为手机的核心组件也备受关注。目前市场上最为常见且性能出色的处理器品牌之一就是华为的麒麟系列和高通的骁龙系列。本文将围绕麒麟8000和骁龙处理器展开性能分析,探讨两者在各方面的强弱对比。首先,让我们来了解一下麒麟8000处理器。作为华为公司最新推出的旗舰处理器,麒麟8000

性能对比:Go语言与C语言的速度和效率 性能对比:Go语言与C语言的速度和效率 Mar 10, 2024 pm 02:30 PM

性能对比:Go语言与C语言的速度和效率在计算机编程领域,性能一直是开发者们关注的重要指标。在选择编程语言时,开发者通常会关注其速度和效率。Go语言和C语言作为两种流行的编程语言,被广泛用于系统级编程和高性能应用。本文将对比Go语言和C语言在速度和效率方面的表现,并通过具体的代码示例来展示它们之间的差异。首先,我们来看一下Go语言和C语言的概况。Go语言是由G

对Java Queue队列性能的分析和优化策略 对Java Queue队列性能的分析和优化策略 Jan 09, 2024 pm 05:02 PM

JavaQueue队列的性能分析与优化策略摘要:队列(Queue)是在Java中常用的数据结构之一,广泛应用于各种场景中。本文将从性能分析和优化策略两个方面来探讨JavaQueue队列的性能问题,并给出具体的代码示例。引言队列是一种先进先出(FIFO)的数据结构,可用于实现生产者-消费者模式、线程池任务队列等场景。Java提供了多种队列的实现,例如Arr

如何进行C++代码的性能分析? 如何进行C++代码的性能分析? Nov 02, 2023 pm 02:36 PM

如何进行C++代码的性能分析?在开发C++程序时,性能是一个重要的考量因素。优化代码的性能可以提高程序的运行速度和效率。然而,想要优化代码,首先需要了解它的性能瓶颈在哪里。而要找到性能瓶颈,首先需要进行代码的性能分析。本文将介绍一些常用的C++代码性能分析工具和技术,帮助开发者找到代码中的性能瓶颈,以便进行优化。使用Profiling工具Profiling工

Laravel开发:如何使用Laravel Telescope进行性能分析和监视? Laravel开发:如何使用Laravel Telescope进行性能分析和监视? Jun 13, 2023 pm 05:14 PM

Laravel开发:如何使用LaravelTelescope进行性能分析和监视?Laravel是一款优秀的PHP框架,由于其简单易用和灵活性而备受开发者喜爱。为了更好地监控和分析Laravel应用程序的性能,Laravel团队开发了一个名为Telescope的强大工具。在本文中,我们将介绍Telescope的一些基本使用方法和功能。安装Telescope在

JavaScript中的代码优化和性能分析的工具和技巧 JavaScript中的代码优化和性能分析的工具和技巧 Jun 16, 2023 pm 12:34 PM

随着互联网技术的飞速发展,JavaScript作为一门广泛使用的前端语言,也越来越受到重视。然而,在处理大量数据或是复杂逻辑的时候,JavaScript的性能就会受到影响。为了解决这个问题,我们需要掌握一些代码优化和性能分析的工具和技巧。本文将为大家介绍一些常用的JavaScript代码优化和性能分析工具以及技巧。一、代码优化避免全局变量:全局变量会占用更多

C++开发建议:如何进行C++代码的性能分析 C++开发建议:如何进行C++代码的性能分析 Nov 22, 2023 pm 08:25 PM

作为一名C++开发人员,性能优化是我们不可避免的任务之一。为了提高代码的执行效率和响应速度,我们需要了解C++代码的性能分析方法,以便更好地调试和优化代码。在本文中,我们将为您介绍一些常用的C++代码性能分析工具和技术。编译选项C++编译器提供了一些编译选项,可以用于优化代码的执行效率。其中,最常用的选项为-O,它可以告诉编译器进行代码优化。通常,我们会设置

See all articles