1. 程式人生 > >使用Golang進行性能分析(Profiling)

使用Golang進行性能分析(Profiling)

.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)