在生產環境中使用php效能測試工具xhprof

2021-08-30 12:06:29 字數 658 閱讀 6403

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

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

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

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

在程式結尾處呼叫方法儲存profile

if ($xhprof_on) 

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

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

至於日誌,我暫時用的是最土的檔案形式儲存,定期清除即可。

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

在生產中使用金絲雀部署來進行測試

考慮到a b 測試和預防性 pre emptive 效能測試,一旦克服了 金絲雀部署 所涉及的技術挑戰將可以減少部署流程中的風險。a b 測試允許在不改變大多數使用者的使用者體驗的情況下進行對新功能的測試。而效能測試對於整個使用者群體來說同樣只會產生微不足道的影響。根據nolio的 金絲雀部署 該方...

PHP自動判斷測試環境還是生產環境

由測試環境發布到生產環境要修改一些配置引數,該來該去挺麻煩還容易出錯。可以在nginx中配置乙個環境引數fastcgi param run env dev 來做判斷 php中判斷載入哪個配置檔案 define run env isset server run env server run env p...

網路知識高階篇以及在生產環境中的使用(高階)

時隔一年再為大家帶來網路知識相關的分享,之前寫的兩篇文章 別讓網路知識成為你跳槽時的瓶頸 和 如何快速入門網路基礎知識 偏向於基礎知識的入門和擴充套件。這次的分享則進一步提高 level,主要有以下幾個方向 接入層的負載均衡 基於四層和七層的負載均衡,基於 dpdk 的高效能閘道器設計和實現 qui...