原本覺得配置這麼一個工具不會費很大的力氣,後面發現徹底不是。php
早上顯示電腦不能顯示虛擬目錄下的全部域名,可是能打開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
1)首先就是下載xhprof擴展包,搜索關鍵字「xhprof」,立刻就找到了php官網上的下載連接,然並卵,這個linux環境的。瀏覽器
2)立刻搜索起來,仍是順利的找到了,並且版本還有多種,windows xhprof,樸素的頁面我喜歡。
1)把下載到的php_xhprof.dll,放到php的ext目錄下面。而後打開擴展
2)最後配置日誌文件
3)在phpinfo中查看是否出現了這個擴展,很好,已經出現了。
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