本篇內(nèi)容主要講解“怎么理解golang、gin、pprof”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么理解golang、gin、pprof”吧!
創(chuàng)新互聯(lián)致力于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
Go語言內(nèi)置了獲取程序運(yùn)行數(shù)據(jù)的工具,包括以下兩個(gè)標(biāo)準(zhǔn)庫:
runtime/pprof: 采集工具型應(yīng)用運(yùn)行數(shù)據(jù)進(jìn)行分析
net/http/pprof: 采集服務(wù)型應(yīng)用運(yùn)行時(shí)數(shù)據(jù)進(jìn)行分析
pprof 是用于可視化和分析性能分析數(shù)據(jù)的工具
pprof 以 profile.proto 讀取分析樣本的集合,并生成報(bào)告以可視化并幫助分析數(shù)據(jù)(支持文本和圖形報(bào)告)
profile.proto 是一個(gè) Protocol Buffer v3 的描述文件,它描述了一組 callstack 和 symbolization 信息, 作用是表示統(tǒng)計(jì)分析的一組采樣的調(diào)用棧,是很常見的 stacktrace 配置文件格式
支持什么使用模式
Report generation:報(bào)告生成
Interactive terminal use:交互式終端使用
Web interface:Web 界面
可以做什么?
CPU Profiling:CPU 分析,按照一定的頻率采集所監(jiān)聽的應(yīng)用程序 CPU(含寄存器)的使用情況,可確定應(yīng)用程序在主動消耗 CPU 周期時(shí)花費(fèi)時(shí)間的位置
Memory Profiling:內(nèi)存分析,在應(yīng)用程序進(jìn)行堆分配時(shí)記錄堆棧跟蹤,用于監(jiān)視當(dāng)前和歷史內(nèi)存使用情況,以及檢查內(nèi)存泄漏
Block Profiling:阻塞分析,記錄 goroutine 阻塞等待同步(包括定時(shí)器通道)的位置
Mutex Profiling:互斥鎖分析,報(bào)告互斥鎖的競爭情況
gin,ojbk就是一套http框架(應(yīng)該說只是組件吧)
我們上面看了pprof只有runtime和http下面有,那gin咋辦?
不著急,找找就發(fā)現(xiàn)了,果然:
go get https://github.com/gin-contrib/pprof
在github找到了相關(guān)demo:
相當(dāng)于是注冊了gin。
運(yùn)行之后,有如下:
打開:http://localhost:8080/debug/pprof/ (我這里是8083)
這時(shí)候你就可以進(jìn)行壓測和數(shù)據(jù)采集了。go pprof支持命令行。
go tool pprof --seconds 20 http://localhost:3000/debug/pprof/goroutine go tool pprof http://localhost:3000/debug/pprof/goroutine?second=20
go tool pprof通過命令行也可以實(shí)現(xiàn)強(qiáng)大的功能,我們來看下命令吧!
top 默認(rèn)查看程序中占用cpu前10位的函數(shù)。 list + 函數(shù)名命令查看具體的函數(shù)分析 pdf 可以生成可視化的pdf文件。
開啟我們的服務(wù)
go run main.go
壓測工具
推薦使用https://github.com/wg/wrk 或 https://github.com/adjust/go-wrk
我使用的是go-wrk
git clone git://github.com/adeven/go-wrk.git cd go-wrk go build ./go-wrk -c=100 -t=8 -n=1000 http://localhost:8083/info/325720270784552960/1
觀察
通過觀察我們發(fā)現(xiàn)主要性能消耗是在runtime、net、sql
到此進(jìn)行了一次完整的pprof gin觀測
我們只應(yīng)該在性能測試的時(shí)候才在代碼中引入pprof
到此,相信大家對“怎么理解golang、gin、pprof”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁題目:怎么理解golang、gin、pprof
文章網(wǎng)址:http://vcdvsql.cn/article24/jhioje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、關(guān)鍵詞優(yōu)化、標(biāo)簽優(yōu)化、企業(yè)建站、網(wǎng)站策劃、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)