golang程式的cpu及記憶體使用情況效能分析
1.runtime.memstats檢視記憶體占用情況
//讀取當前記憶體資訊的方法啟動服務,在瀏覽器輸入:http://localhost:10000/debug/pprof/heap?debug=1 進入pproffunc printmemstats()
func test()
}log.println(" --> loop end...")
}func main()
}()//主線程 睡眠等待
alloc:golang語言框架堆空間分配的位元組數
heapidle:申請但是未分配的堆記憶體或者**了的堆記憶體(空閒)位元組數
heapreleased:返回給os的堆記憶體
heapinuse uint64:正在使用的堆記憶體位元組數
gcsys uint64:垃圾**標記元資訊使用的記憶體
sys uint64:服務現在系統使用的記憶體
2. pprof分析golang記憶體
r := routers.setuprouter() // 初始化路由
r.run(address)
}
3. golang程式cpu效能分析
在瀏覽器輸入:http://localhost:10000/debug/pprof/ ,進入pprof除錯頁:
使用top指令即可檢視當前profile檔案中的cpu佔用率:
安裝graphviz後,在pprof輸入 web 會開啟視覺化的函式呼叫情況:
golang 效能分析 2
總覽 執行緒數量,阻塞呼叫,記憶體分析 協程分析等 pprof cpu和記憶體分析說明 一般採集cpu樣板資料 這裡我只寫一種,至於其他的記憶體和trace採集,可以參考 此文章介紹了各種採集樣板資料原理,以及展示方式 import runtime pprof log func main defer...
golang 效能分析 pprof
如果是使用了http包的路由,則只需要import net http pprof 即可 mutex mutex導致爭用的goroutine堆疊 總的分析思路就是通過top和traces找出關鍵函式,再通過list檢視函式 找到關鍵 行並確認優化方案 top檢視占用最高的num項 traces列印匹配...
golang程式效能分析
vegeta是乙個用go語言編寫的多功能的http負載測試工具,提供命令列工具和開發包。安裝見vegeta 說明。usage vegeta global flags command flags global flags cpus int 使用cup的數量 預設4 個 profile string e...