Golang如何做效能分析?

2021-08-14 18:18:14 字數 1421 閱讀 7002

答案:採用go內建的runtime/pprof包, 和go tool pprof。

分三個步驟:

1. 在main函式中,增加效能分析**:()

f, err := os.create(cpuprofile)

if err != nil

pprof.startcpuprofile(f)

defer pprof.stopcpuprofile()

其中cpuprofile是用來儲存效能分析資料的檔案。

2. 在main函式中,設定一種方法,能夠讓main函式自然退出,從而呼叫  defer pprof.stopcpuprofile() 這行**。只有呼叫這行**,才能生成prof檔案。注意, 這是最關鍵的一步。

svr, err = server.newserver(log)

if err != nil

sc := make(chan os.signal, 1)

signal.notify(sc,

syscall.sigint,

syscall.sigterm,

syscall.sigquit,

syscall.sigusr1)

go func()

}()svr.run(log)

svr.close() 用來讓 svr.run(log) 優雅退出。 這兩個函式的實現可以如下:

func (s *server) close()

} func (s *server) run(log *ulog.bulogger) error

return nil

}

3. 執行模組, 執行前注意要設定

prof檔案的儲存位址, 既設定cpuprofile這個變數。模組執行後,會生成cpuprofile對應的檔案,但檔案內容為空。

4. 執行一段時間後, 採用命令: kill -2 $pid  讓模組程序自然終止。 自然終止後,cpuprofile對應的檔案有內容。

5. cpuprofile檔案中的內容是二進位制的,不可直接閱讀。此時,可以轉化為pdf格式。轉化的方法:

apt-get install graphviz

5.2 使用go tool pprof 命令,將cpuprofile檔案轉化為pdf檔案:

go tool pprof -pdf 你的模組名稱  cpuprofile檔案位址 > pdf檔案位址

比如:go tool pprof -pdf ./uddb_router cpu.pprof > report.pdf

6. 轉化成pdf格式後,就可以直接用pdf閱讀器開啟看了。效果如下:

如何做效能測試?

一提到效能測試,大家首先想到的就是測試工具,很多人認為效能測試就是使用測試工具,會使用測試工具就是會效能測試,我認為這種思想是不對的。什麼叫效能測試呢?效能測試是通過自動化的測試工具模擬多種正常 峰值以及異常負載條件來對系統的各項效能指標進行測試。測試工具只是用於模擬某些特定的情況的,模擬出某些情況...

如何做效能測試?

一 什麼是效能測試 是不斷的通過不同場景的系統表現去 系統設計與資源消耗之間的平衡。我們可以認為效能測試是 通過在測試環境下對系統或構件的效能進行探測,用以驗證在生產環境下系統效能是否達到預估的效能 需求,發現系統可能存在的效能瓶頸,進而改善優化並系統的效能,提高系統的可擴充套件性 穩定性。從上面的...

如何做需求分析

如何做需求分析 原則 永遠不要顯得比客戶更聰明 第一條 了解需求,而不是去批評客戶 第二條 客戶比你更熟悉業務的環境 第三條 客戶總是知道問題在哪兒,你的工作就是要讓他們自己願意說出來 原則 尊重使用者的現實選擇 第一條 客戶永遠是對的 第二條 提供最合適的解決方案,而非最好或最貴的方案 第三條 不...