0
我有一個用Yii2框架編寫的API應用程序,我不知道如何測量和跟蹤性能,因爲我很想看看幕後發生了什麼。我的API使用的是mongoDB,我也希望看到這些查詢,但我不知道從哪裏開始。 Yii2擁有自己的集成debugPanel,它非常棒,但是隻能用於瀏覽器,並且不能使用Postman來執行API調用。如何剖析基於Yii2的API?
你們如何在開發和生活環境中做到這一點?
乾杯
我有一個用Yii2框架編寫的API應用程序,我不知道如何測量和跟蹤性能,因爲我很想看看幕後發生了什麼。我的API使用的是mongoDB,我也希望看到這些查詢,但我不知道從哪裏開始。 Yii2擁有自己的集成debugPanel,它非常棒,但是隻能用於瀏覽器,並且不能使用Postman來執行API調用。如何剖析基於Yii2的API?
你們如何在開發和生活環境中做到這一點?
乾杯
對於基本的測量,Yii有一些內置的分析。您可以使用\Yii::beginProfile()
和Yii::endProfile()
來調用它,並通過調試工具欄查看結果。
對於開發,您還可以使用Xdebug。它也支持分析。
對於生產,這是別的。您需要一個對性能影響不大的解決方案,並且您希望某些內容能夠定期和自動運行。您應該跟蹤路由和他們的配置結果,以便您可以比較代碼隨時間的改進(或不改變)。
我在一對非常高流量的網站上工作,我們使用的是隨機激活的xhprof。
例如,在您的index.php,你可以這樣做
if (rand(1, 100) == 50) {
xhprof_enable();
// on after_request() or register_shutdown_function(): store route and results
}
顯然,無論你需要可能會有所不同,但也許這讓你在看什麼方向的一些想法。
當我測試API調用時,調試工具欄不起作用,Xdebug更難以測試應用程序的小部分。 我不知道xhprof,但我看着它。 感謝您的回覆! –
我們在談論相同的Xdebug嗎?我整天用它來調試和分析特定的功能。沒有麻煩。 – Blizz
那麼當我用Xdebug進行分析時,它會爲我生成一個超過100MB的文件,這非常適合可視化整個項目生命週期,但是太多了,看不到代碼的小部分。我需要像\ Yii :: beginProfile()和\ Yii :: endProfile()這樣的原子。在此期間,我做了一些工作:我正在記錄可測量的部分,並在tail -f命令行中查看日誌文件。我找不到更復雜的方法: - / –