It’s better to record the useful things, which will also facilitate future inquiries; this time, record the installation and use of xhprof;
It can also be used in a production environment, and it can also be controlled by a program switch whether to profile.
2. Installation
<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 –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>
<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>
Copy the xhprof_html and xhprof_lib folders in the source package to the virtual directory you created
cp -r xhprof_html xhprof_lib /xxx/xhprof/ (The purpose here is to establish a data analysis directory, which can be configured as a virtual host for access)
After running, click the returned xhprof statistics link for statistics.
6. Attention issues and explanations of terms
After clicking, an error message may be prompted. Just execute the following command
<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
http://www.bkjia.com/PHPjc/1048770.html