2010年的時候有做過相關的東西,為ECOS框架寫了一個相關的APP應用,前段時候要用xhprof來測試一下ECAE上的php的運行效率又重新要安裝xhprof
本日志記錄下相關的過程,以便以后再次使用到
編譯安裝
wget http://pecl.php.net/get/xhprof-0.9.2.tgz tar zxf xhprof-0.9.2.tgz cd xhprof-0.9.2/extension/ sudo phpize ./configure --with-php-config=/usr/local/php/bin/php-config sudo make sudo make install
配置 php.ini
在php.ini里加入
[xhprof] extension=xhprof.so; ; directory used by default implementation of the iXHProfRuns ; interface (namely, the XHProfRuns_Default class) for storing ; XHProf runs. ; ;xhprof.output_dir=<directory_for_storing_xhprof_runs> xhprof.output_dir=/tmp/xhprof
注:如果是64位系統需要將xhprof.so文件拷貝到相關的lib64的目錄下
將代碼加入到要測試的php當中
1 <?pho 2 // cpu:XHPROF_FLAGS_CPU 內存:XHPROF_FLAGS_MEMORY 3 // 如果兩個一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY 4 xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); 5 6 // 要測試的php代碼 7 8 9 $data = xhprof_disable(); //返回運行數據 10 11 // xhprof_lib在下載的包里存在這個目錄,記得將目錄包含到運行的php代碼中 12 include_once "xhprof_lib/utils/xhprof_lib.php"; 13 include_once "xhprof_lib/utils/xhprof_runs.php"; 14 15 $objXhprofRun = new XHProfRuns_Default(); 16 17 // 第一個參數j是xhprof_disable()函數返回的運行信息 18 // 第二個參數是自定義的命名空間字符串(任意字符串), 19 // 返回運行ID,用這個ID查看相關的運行結果 20 $run_id = $objXhprofRun->save_run($data, "xhprof"); 21 var_dump($run_id);
查看運行結果
將xhprof_lib&&xhprof_html相關目錄copy到可以訪問到的地址 訪問 xxx/xhprof_html/index.php?run=$run_id&source=bluefrog 就可經看到你的php代碼運行的相關情況 下面是一些參數說明 Inclusive Time 包括子函數所有執行時間。 Exclusive Time/Self Time 函數執行本身花費的時間,不包括子樹執行時間。 Wall Time 花去了的時間或掛鍾時間。 CPU Time 用戶耗的時間+內核耗的時間 Inclusive CPU 包括子函數一起所占用的CPU Exclusive CPU 函數自身所占用的CPU
注: 需要使用ctype這個擴展