golang 程式效能優化工具介紹

2021-08-13 06:44:11 字數 1336 閱讀 4969

本文旨在介紹go語言中用來分析效能的工具

簡介:pprof是go自帶的效能分析工具,可以分析程式的各個函式的cpu占用情況,記憶體占用情況等。

使用方法

方法一 :基於go的功能測試函式

go的功能測試函式有兩種,一種是func test***(t*testing.t){},一種是benchmark***(b*testing.b){}。前者只對函式體執行一次,用來測試函式的功能。後者對函式體執行多次,並輸出平均執行時間,用來進行效能測試。這兩種模式都可以在命令列模式下生成測試檔案。對應的命令列**如下:

go test . -cpuprofile cpu.profile -memprofile mem.profile

go test -test.bench . -cpuprofile cpu.profile -memprofile mem.profile

1.生成效能分析檔案:

通過以上的命令列引數,go 的test會自動往測試函式中加入相關的**(下面介紹的方法二就是自己往測試函式中嵌入相關生成效能分析檔案的**),用來生成分析效能的檔案。最終會在可執行檔案目錄下產生這樣三個檔案:可執行檔案.exe(或者linux下沒有.exe),cpu.profile,mem.profile。

2.利用效能分析檔案分析程式效能:

go tool pprof 可執行檔案.exe cpu.profile

go tool pprof 可執行檔案.exe mem.profile

進入後,可以使用top ,web等命令分析程式效能。具體可參考網路上的相關部落格。

方法二:手動在main()函式中嵌入**

func main()
執行可執行檔案就會產生cpu.prof和mem.prof檔案

簡介:go-torch是uber開源的乙個生成火焰圖的工具,火焰圖用來分析cpu使用情況,相對於上面的pprof生成的分析檔案更加直觀,**路徑:

使用方法

使用方法參考go-torch提供的readme,這裡只進行乙個自己實踐過程中遇到的乙個問題:go-torch在windows下執行時候,總是提示依賴的perl檔案不是有效檔案。但是在ubuntu下執行正常。

pprof可以在windows環境下執行linux生成的可執行檔案和profile。

比如你在linux環境下生成 yourexec cpu.profile mem.profile

把上面的檔案拷貝到windows下,執行go tool pprof yourexec cpu.profile 以及

go tool pprof yourexec mem.profile是可以的。這個特性非常友好,我們可以借助windows的圖形化環境更加便利地分析程式效能。

golang程式效能分析

vegeta是乙個用go語言編寫的多功能的http負載測試工具,提供命令列工具和開發包。安裝見vegeta 說明。usage vegeta global flags command flags global flags cpus int 使用cup的數量 預設4 個 profile string e...

優化程式效能

編寫高效程式需要兩個活動 第一,我們必須選擇一組最好的演算法和資料結構 第二,我們必須編寫出編譯器能夠有效優化以轉換成高效可執行 的源 這裡,我們主要講述後者。首先,我們討論一下為什麼要編寫高效程式。不難想象,如果本來要用 天執行完的程式,經過優化只需要 天就可執行完,這是一件多麼令人振奮的 事啊。...

優化程式效能

l 消除迴圈的低效率 n 對於迴圈中的過程呼叫盡量移出迴圈外,例如 nfor i 0 i strlen s i strlen 函式為線性增長 在字串長度很大時 很消耗系統資源 n 減少不必要的儲存器引用,將儲存器引用儲存在臨時變數中.l 處理器優化 即充分利用儲存器流水線操作的吞吐量 n 迴圈展開,...