使用Golang進行性能分析(Profiling)
阿新 • • 發佈:2017-07-07
.cpp 測試 star 封裝庫 cda 路徑 找到 report x86
轉自:http://www.cppblog.com/sunicdavy/archive/2015/04/11/210308.html
本文介紹遊戲服務器的性能分析, web服務器性能分析不在本文分析範疇之內
Golang編寫的服務器可以方便的通過內建性能分析, 輸出圖表仔細查找原因, 非常的方便, 如下圖
1. 獲取一個性能分析的封裝庫
go get github.com/davecheney/profile
2. 在工程內import這個組件
3. 在main中添加啟動和停止入口
func main() { defer profile.Start(profile.CPUProfile).Stop() // ... your main code here ... }
4. 重新編譯工程, 運行
5. 註意觀察啟動後, 命令行裏的字段, 類似於
2013/08/08 16:45:58 profile: cpu profiling enabled, /tmp/profile882806532/cpu.pprof
後面的路徑就是pprof性能分析文件的位置, 啟動機器人進行多次服務器測試用例, 停止機器人, Ctrl+C中斷服務器
6.將cpu.pprof拷貝到你的遊戲exe所在位置
7.下載並安裝Graphviz, 這是將分析數據變成上圖的圖形化工具
8.調用Graphviz制作文檔
go tool pprof --pdf gamesvc.exe cpu.pprof > report.pdf
如果dot沒有找到, 可以在執行前添加路徑
set path==%path%;"c:\Program Files (x86)\Graphviz2.38\bin"
使用Golang進行性能分析(Profiling)