go應用效能分析

2021-08-29 10:08:57 字數 1232 閱讀 9916

對golang應用執行時占用記憶體和cpu的大小和時間進行統計分析

執行時開啟監控

go func() ()使用beego 自帶了這個功能,需要配置如下:

enableadmin = true
main.go加入import _ "net/http/pprof"

web頁面檢視

通過訪問localhost:6060/debug/pprof檢視簡單頁面

go 命令詳細分析

在專案目錄下執行命令:

這個命令會執行30s,分析這段時間內cpu的使用

這個命令會生成記憶體占用分析

執行以上命令後會進入乙個互動式模式,可以輸入一下命令分析:

輸入乙個數字可以看到前n個占用最高的內容

topn顯示引數含義

flat為方法直接執行消耗的cpu時間,cum為方法呼叫的方法加上方法直接執行消耗的時間.比如:

func b()
sum為當前排序下的flat總和,比如:第一行的sum和flat%相同,第二行的sum為第一行的flat%加上第二行的flat%,以此類推.

會生成svg檔案,通過瀏覽器開啟可以看到,如果報錯,意味缺少環境,centos下執行yum install graphviz安裝依賴包

svg檔案分析
表示當前顯示的內容總共占用cpu830ms,整個程式總共占用cpu950ms

配置環境,安裝如下應用

git clone 

go get -v github.com/uber/go-torch

將 flamegraph配置到環境變數中.

進入go-torch目錄執行go build,生成執行檔案,執行命令:

go-torch -u http://localhost:8088 -t 20
會在當前目錄生成svg檔案,用瀏覽器開啟.

Android應用效能優化

記憶體,ui,電量 1.記憶體 首先簡單介紹一下android系統記憶體管理機制.記憶體共享 預設情況 string vmheapsize systemproperties.get dalvik.vm.heapsize 16m 只有16m.可以通過在device.mk檔案中設定 product pr...

Android應用效能優化

1 anr 2 listview 卡頓,不流暢 3 activity啟動慢 4 動畫不流暢,啟動前卡頓 5 自定義view啟動慢 6 oom 7 資料庫大量操作 8 長時間執行後,程式變慢 1 語言層解決問題,語法上提高效能 2 合理的資料結構和演算法 3 布局優化,布局深度控制 4 工作執行緒與u...

Web應用效能優化思路

瓶頸是什麼?一條4車道的公路,執行非常順暢,突然出了點事故,事故車導致某個地方只剩下1車道,然後就開始堵車,因為四輛車同時塞向乙個車道裡。把這個事故清除了,故障車拖走了,道路會開始恢復了通暢。這個道理誰都懂,但偏偏有些傻瓜交警去把4車道變成8車道,但卻不清理事故路段。乙個web應用,不管是何種語言開...