golang中的pprof支持
生活随笔
收集整理的這篇文章主要介紹了
golang中的pprof支持
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
專注后臺開發相關技術,廣度深度并存,干貨情懷同在。
微信搜索【盼盼編程】關注這個不一樣的程序員。
??強烈推薦人工智能學習網站??
Go語言有一個非常棒的設計就是標準庫里面帶有代碼的性能監控工具,在兩個地方有包:
net/http/pprofruntime/pprof
其實net/http/pprof中只是使用runtime/pprof包來進行封裝了一下,并在http端口上暴露出來
beego支持pprof
目前beego框架新增了pprof,該特性默認是不開啟的,如果你需要測試性能,查看相應的執行goroutine之類的信息,其實Go的默認包"net/http/pprof"已經具有該功能,如果按照Go默認的方式執行Web,默認就可以使用,但是由于beego重新封裝了ServHTTP函數,默認的包是無法開啟該功能的,所以需要對beego的內部改造支持pprof。
- 首先在beego.Run函數中根據變量是否自動加載性能包
- 設計ProfConterller
使用入門
通過上面的設計,你可以通過如下代碼開啟pprof:
beego.PprofOn = true?
我們可以通過命令行獲取更多詳細的信息
go tool pprof http://localhost:8080/debug/pprof/profile這時候程序就會進入30秒的profile收集時間,在這段時間內拼命刷新瀏覽器上的頁面,盡量讓cpu占用性能產生數據。
(pprof) top10Total: 3 samples1 33.3% 33.3% 1 33.3% MHeap_AllocLocked1 33.3% 66.7% 1 33.3% os/exec.(*Cmd).closeDescriptors1 33.3% 100.0% 1 33.3% runtime.sigprocmask0 0.0% 100.0% 1 33.3% MCentral_Grow0 0.0% 100.0% 2 66.7% main.Compile0 0.0% 100.0% 2 66.7% main.compile0 0.0% 100.0% 2 66.7% main.run0 0.0% 100.0% 1 33.3% makeslice10 0.0% 100.0% 2 66.7% net/http.(*ServeMux).ServeHTTP0 0.0% 100.0% 2 66.7% net/http.(*conn).serve (pprof)web
?
???強烈推薦人工智能學習網站??
專注后臺開發相關技術,廣度深度并存,干貨情懷同在。
微信搜索【盼盼編程】關注這個不一樣的程序員。
總結
以上是生活随笔為你收集整理的golang中的pprof支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang多语言支持
- 下一篇: 大厂动态规划面试汇总,提升内功