windows配置xhprof,PHP性能分析工具

原本覺得配置這麼一個工具不會費很大的力氣,後面發現徹底不是。php

1、小插曲

  早上顯示電腦不能顯示虛擬目錄下的全部域名,可是能打開localhost,數據庫鏈接也不行了。這個問題糾纏了我一個上午。對了還有個問題是輸入法不能顯示了,後面下載了個百度衛士修復了下,早上真是諸事不順。html

1)一開始覺得是firefox瀏覽器Fiddler插件的問題,而後關閉firefox中的插件,關閉Fiddler,發現仍是不能打開網站。linux

  

 

2)覺得是瀏覽器的問題,立刻打開另外幾個瀏覽器,在chrome瀏覽器中打開,依舊不能打開,顯示下面的錯誤,IE中也不行,這就奇怪了。而後根據錯誤代碼在百度和google上面搜索,沒查到什麼有用的。git

  

 

3)後面經同事提醒能夠看看apache的日誌,看看有沒有蛛絲馬跡。但奇怪的是log都沒有發生變化。github

  

 

4)打開防火牆,發現已經所有都關閉,後面打開windows日誌,也沒發現有啥問題。chrome

  

 

5)最後,再分析了下問題,發現實際上是不能訪問127.0.0.1這個域名致使的。而後再搜索找到一條指令,試一下,還真行了。數據庫

  

 

6)一個莫名奇妙的問題出如今面前,作的第一件事情就是打開搜索引擎,而後描述問題;不過不少時候,一開始描述的並非問題的核心所在,只能在不斷嘗試的時候,把問題分析的愈來愈清晰。apache

  下午安裝xhprof也是一個差很少的分析問題的過程,個人php版本是5.5.17的。windows

 

2、windows環境

1)首先就是下載xhprof擴展包,搜索關鍵字「xhprof」,立刻就找到了php官網上的下載連接,然並卵,這個linux環境的。瀏覽器

 

2)立刻搜索起來,仍是順利的找到了,並且版本還有多種,windows xhprof,樸素的頁面我喜歡。

 

3、php.ini

1)把下載到的php_xhprof.dll,放到php的ext目錄下面。而後打開擴展

 

2)最後配置日誌文件

 

3)在phpinfo中查看是否出現了這個擴展,很好,已經出現了。

 

4、demo

1)在github上面下載到了xhprof的php相關代碼事例。目錄結構以下,等一下會用到的是examples,xhprof_html與xhprof_lib。

 

2)如今examples文件夾中打開example.php文件,出現了下面的一串信息。

 

 

3)而後打開xhprof_html,出現了下面的幾個日誌,這個日誌存放在php.ini設置的xhprof.output_dir目錄中。

 

4)點擊某個日誌,出現了下面的表格,裏面表明的內容能夠在網上查到。

 

5)點擊view full callgraph,這個實際上是我最想看到的效果,滿心期待的,但是出現了一個無情的錯誤,囧。

  

 

6)在網上搜索到一篇文章,裏面講到是由於沒有安裝Graphviz,這個軟件致使的,立刻就去下載。

  

 

7)覺得下下來就能夠了,萬萬沒想到,一如既往的報錯。在那篇文章中說到給config.php文件配置個目錄,我在事例代碼中看了半天都沒找到這個文件,覺得在忽悠我,後來我在那篇博客中下載了demo代碼,果真發現了這個文件,不過即便把這個文件放到我這邊,也沒啥鳥用。又開始搜索,搜到篇洋人寫的文章,也提到了配置。

  

 

8)最後在Stack Overflow這個網站上面發現了靈感,這個網站還真是有用。有個洋人說道:

  

 

9)還有這麼個文件,立刻找到這個函數xhprof_generate_image_by_dot

$descriptorspec = array(
       // stdin is a pipe that the child will read from
       0 => array("pipe", "r"),
       // stdout is a pipe that the child will write to
       1 => array("pipe", "w"),
       // stderr is a pipe that the child will write to
       2 => array("pipe", "w")
       );

  $cmd = " dot -T".$type;

  $process = proc_open( $cmd, $descriptorspec, $pipes, sys_get_temp_dir(), array( 'PATH' => getenv( 'PATH' ) ) );

 

10)發現讀取了PATH這個環境變量,原來是要配置下這個環境變量的,我當時實際上是配置過一次的,不過不是配的系統變量,囧,將Graphviz2.38\bin的絕對路徑寫上去。

 

11)期待已久的圖片終於出現了。

 

若是想要應用到實際項目中,確定還有不少地方須要修改。

 

demo下載:

http://download.csdn.net/detail/loneleaf1/8958017

 

參考資料:

http://blog.snsgou.com/post-816.html 安裝PHP性能測試工具 xhprof_0.10.3_php53_vc9.dll

http://stackoverflow.com/questions/2930254/linux-dot-utility-with-xhprof  linux dot utility (with xhprof)

http://www.lornajane.net/posts/2012/generating-callgraph-with-xhgui  Generating Callgraph with XHGUI

相關文章
相關標籤/搜索