程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php性能分析工具,php性能分析

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

編輯:關於PHP編程

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


一、前言

  有用的東西還是記錄下來吧,也方便以後的查詢;這次記錄一下xhprof的安裝使用;

  xhprof是facebook開源出來的一個php輕量級的性能分析工具,跟Xdebug類似,但性能開銷更低,

  還可以用在生產環境中,也可以由程序開 關來控制是否進行profile。

二、安裝

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

2.    tar zxf xhprof-0.9.3.tgz  

3.    cd xhprof-0.9.3/extension

4.    /usr/bin/phpize 
     (php版本安裝後生成的phpize文件,可根據phpinfo查看,所以php版本不同,生成的phpize也不同,此步驟主要生成configure文件)

5.    ./configure  –with-php-config=/usr/bin/php-config  
    (php-config的路徑,也是php安裝後生成的文件)  

6.    make  

7.    sudo make install 
    (會自動將生成的擴展文件拷貝到擴展目錄中/usr/lib64/php/modules)

    當然具體的php文件的目錄,每個人不盡相同,可根據phpinfo查詢

三、php.ini配置

1 根據phpinfo找到 extension_dir的目錄
2 (/etc/php.d/xhprof.ini)
3 
4 添加一下內容:
5 
6 extension=xhprof.so
7 xhprof.output_dir=/tmp/xhprof //xhprof的分析日志

四、重啟服務

1 sudo /etc/init.d/http restart
2 
3 查看phpinfo是否安裝成功

五、使用方法

 1 開頭:
 2 xhprof_enable(); //開啟監測  
 3 //xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不記錄內置的函數  
 4 //xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  同時分析CPU和Mem的開銷  
 5 
 6 //要測試的代碼
 7 ...
 8 ...
 9 ...
10 
11 結尾:
12 $xhprof_data = xhprof_disable();  //停止監測,返回運行數據
13 $xhprof_root = '/(xhprof的虛擬主機目錄)/';  
14  //引入當初安裝到xhprof虛擬主機目錄中的文件
15 include_once $xhprof_root."xhprof_lib/utils/xhprof_lib.php";  
16 include_once $xhprof_root."xhprof_lib/utils/xhprof_runs.php";   
17 $xhprof_runs = new XHProfRuns_Default();   
18 $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof");
19 echo '<a href="http://(xhprof的虛擬主機域名)/xhprof_html/index.php?run='.$run_id.'&source=xhprof" target="_blank">xhprof統計</a>';  

  上邊的代碼使用了,給xhprof設置虛擬主機的方法。

  把源碼包中的 xhprof_html 和 xhprof_lib 文件夾拷貝到自己建立的虛擬目錄中

  cp -r xhprof_html xhprof_lib /xxx/xhprof/  (此處目的是建立數據分析目錄,可將此目錄配置成虛擬主機訪問)

  運行後,統計點擊返回的 xhprof統計 鏈接,即可。

六、注意問題以及名詞解釋

  在顯示的統計頁面中,點[View Full Callgraph]圖形化顯示(最大的性能問題會用紅色標出,其次是黃色);

  點擊後,可能提示錯誤消息,執行以下命令即可

1 yum install -y graphviz
2 yum install graphviz-gd

  名詞解釋

 1     Function Name 函數名
 2     Calls 調用次數
 3     Calls% 調用百分比
 4     Incl. Wall Time (microsec) 調用的包括子函數所有花費時間 以微秒算(一百萬分之一秒)
 5     IWall% 調用的包括子函數所有花費時間的百分比
 6     Excl. Wall Time (microsec) 函數執行本身花費的時間,不包括子樹執行時間,以微秒算(一百萬分之一秒)
 7     EWall% 函數執行本身花費的時間的百分比,不包括子樹執行時間
 8     Incl. CPU(microsecs) 調用的包括子函數所有花費的cpu時間。減Incl. Wall Time即為等待cpu的時間
 9     減Excl. Wall Time即為等待cpu的時間
10     ICpu% Incl. CPU(microsecs)的百分比
11     Excl. CPU(microsec) 函數執行本身花費的cpu時間,不包括子樹執行時間,以微秒算(一百萬分之一秒)。
12     ECPU% Excl. CPU(microsec)的百分比
13     Incl.MemUse(bytes) 包括子函數執行使用的內存。
14     IMemUse% Incl.MemUse(bytes)的百分比
15     Excl.MemUse(bytes) 函數執行本身內存,以字節算
16     EMemUse% Excl.MemUse(bytes)的百分比
17     Incl.PeakMemUse(bytes) Incl.MemUse的峰值
18     IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比
19     Excl.PeakMemUse(bytes) Excl.MemUse的峰值
20     EPeakMemUse% EMemUse% 峰值百分比

七、參考資料

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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved