Go 工具pprof 失敗:無論分析目標如何,都會出現一致的輸出缺陷
pprof 工具以前在Go 應用程式中可靠地進行效能分析,現在一直遇到一個問題,無論目標應用程式如何,它始終會產生損壞和貧瘠的輸出。這個問題影響了各種應用程序,包括 Web 應用程序,甚至在作業系統升級後仍然存在。
一個值得注意的例子是,pprof 生成輸出,而不是生成詳細的調用圖或提供最頂層函數調用的列表類似於:
269.97kB of 269.97kB total ( 100%) flat flat% sum% cum cum% 269.97kB 100% 100% 269.97kB 100%
為了生成配置文件,開發人員使用Go v1.5.1 中的「github.com/davecheney/profile」套件。以下是他們的分析過程的總結:
預期,命令列應該顯示訊息“記憶體分析已啟用”,後面跟著設定檔的路徑(例如 /var/folders/.../mem.pprof)。
當程式碼如預期運作時,pprof對輸出檔案 (/path/to/profile.pprof) 的分析為故障排除提供不足的資訊。
解:
問題在於 pprof 呼叫。使用者在呼叫 go tool pprof 時錯誤地省略了二進位檔案名稱。要解決此問題,必須指定二進位檔案以及設定檔路徑:
go tool pprof ./binary_name /path/to/profile.pprof
此修改可確保 pprof 分析預期的二進位文件,從而產生預期的詳細效能分析輸出。
以上是為什麼即使在分析我的應用程式時,我的 Go 工具 pprof 輸出也是空白?的詳細內容。更多資訊請關注PHP中文網其他相關文章!