XHProf是一個分層PHP性能分析工具,它報告函數級別的請求次數和各種指標,包括阻塞時間,CPU時間和內存使用情況,現在我們來聊聊XHProf在開發環境中如何測試php性能.
以百分之一的概率產生測試數據,盡量不影響正式環境效率,代碼如下:
- class XHProf {
- // private $XHProfPath = ‘xhprof/’;
- private $XHProfPath = ‘/usr/local/apache/htdocs/xhprof/’;
- private $applicationName = ‘sias_application’;
- private $sampleSize = 100;
- private static $enabled = false;
- public function XHProf_Start() {
- if (mt_rand(1, $this->sampleSize) == 1) {
- include_once $this->XHProfPath . ‘xhprof_lib/utils/xhprof_lib.php’;
- include_once $this->XHProfPath . ‘xhprof_lib/utils/xhprof_runs.php’;
- xhprof_enable(XHPROF_FLAGS_NO_BUILTINS + XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
- self::$enabled = true;
- } //開源軟件:Vevb.com
- }
- public function XHProf_End() {
- if (self::$enabled) {
- $XHProfData = xhprof_disable();
- $XHProfRuns = new XHProfRuns_Default();
- $XHProfRuns->save_run($XHProfData, $this->applicationName);
- }
- }
- }
測試效果:
- Overall Summary
- Total Incl. Wall Time (microsec): 48,162 microsecs
- Total Incl. CPU (microsecs): 32,994 microsecs
- Total Incl. MemUse (bytes): 2,773,464 bytes
- Total Incl. PeakMemUse (bytes): 2,867,664 bytes
- Number of Function Calls: 749
從以下測試結果看出,耗時最多的居然是連接數據庫,所以我們來盡量優化數據庫.
新聞熱點
疑難解答