close

xhprof是facebook開源出來的一個php性能測試工具,也可以稱之為profile工具,這個詞不知道怎麼翻譯才比較達意。跟之前一直使用的xdebug相比,有很多類似之處。以前對xdebug有一些記錄還可以供參考,但是它的缺點是對性能影響太大,即便是開啟了profiler_enable_trigger參數,用在生產環境中也是慘不忍睹,cpu立刻就飆到high。

而xhprof就顯得很輕量,是否記錄profile可以由程序控制,因此,用在生產環境中也就成為一種可能。在它的文檔上可以看到這樣一種用法:

以萬分之一的幾率啟用xhprof,平時悄悄的不打槍。

PHP:

  1. if (mt_rand(1, 10000) == 1) {

  2. xhprof_enable(XHPROF_FLAGS_MEMORY);

  3. $xhprof_on = true;

  4. }

在程序結尾處調用方法保存profile

PHP:

  1. if ($xhprof_on) {

  2. // stop profiler

  3. $xhprof_data = xhprof_disable();

  4. // save $xhprof_data somewhere (say a central DB)

  5. ...

  6. }

也可以用register_shutdown_function方法指定在程序結束時保存xhprof信息,這樣就免去了結尾處判斷,給個改寫的不完整例子:

PHP:

  1. if (mt_rand(1, 10000) == 1) {

  2. xhprof_enable(XHPROF_FLAGS_MEMORY);

  3. register_shutdown_function(create_funcion('', "$xhprof_data = xhprof_disable(); save $xhprof_data;"));

  4. }

至於日誌,我暫時用的是最土的文件形式保存,定期清除即可。

BTW:xhprof生成的圖形方式profile真是酷斃了,哪段代碼成為瓶頸,一目瞭然。


作者: Volcano
發表於August 5, 2009 at 10:01 pm

版權信息
: 可以任意轉載, 轉載時請務必以超鏈接形式標明文章原始出處作者信息及此聲明

永久鏈接 - http://www.ooso.net/archives/522

arrow
arrow
    全站熱搜

    優購雲端科技 發表在 痞客邦 留言(0) 人氣()