成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎樣使用golang的pprof包對(duì)程序進(jìn)行性能分析

這篇文章給大家分享的是有關(guān)怎樣使用golang的pprof包對(duì)程序進(jìn)行性能分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧。

創(chuàng)新互聯(lián)建站致力于網(wǎng)站建設(shè),網(wǎng)站制作設(shè)計(jì),營(yíng)銷網(wǎng)頁(yè)按需制作,成都外貿(mào)網(wǎng)站制作,企業(yè)網(wǎng)站建設(shè),重慶小程序開發(fā),網(wǎng)站SEO優(yōu)化,網(wǎng)站設(shè)計(jì)制作案例豐富,是成都做網(wǎng)站公司和建站公司,歡迎咨詢。

golang提供pprof包,可以監(jiān)控golang程序的堆棧,cpu的耗時(shí)等性能信息。下邊就說(shuō)一下這個(gè)pprof包的使用。
1,首先是引入,在兩個(gè)地方可以引入:

“net/http/pprof”
 "runtime/prof"

其中"net/http/pprof"是用“runtime/pprof” 包裝了一下,然后再http端口暴露出來(lái),讓我們可以再瀏覽器查看程序的性能分析?!皉untime/pprof”可以生成*.pprof的文件,然后根據(jù)這個(gè)文件做性能分析.
2,然后就是在代碼中使用pprof了,實(shí)際運(yùn)用中分三種情況:
1)
如果程序本身就是web服務(wù)器,那么只需要通過代碼:

import(
_"net/http/pprof"
 )

,將pprof引入,然后在瀏覽器訪問http://localhost:port/debug/pprof/就能看到當(dāng)前web服務(wù)的狀態(tài),包括CPU占用情況和內(nèi)存使用情況等
2)
如果你的go程序不是web服務(wù)器,而是一個(gè)服務(wù)進(jìn)程,那么你就需要開啟一個(gè)goroutine來(lái)開啟端口監(jiān)聽。
比如:

go func() {
         log.Println(http.ListenAndServe("localhost:6060", nil)) 
 }()

同樣的訪問http://localhost:6060/debug/pprof就可以查看程序運(yùn)行的信息。
3)如果你的程序只是一個(gè)應(yīng)用程序,那么你就需要使用“runtime/ppprof”包了。
官網(wǎng)給出的代碼是這樣的:

var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
 func main() {
     flag.Parse()
     if *cpuprofile != "" {
         f, err := os.Create(*cpuprofile)
         if err != nil {
             log.Fatal(err)
         }
         pprof.StartCPUProfile(f)
         defer pprof.StopCPUProfile()
     }

,然后我們?cè)谶\(yùn)行這個(gè)程序的時(shí)候加上一個(gè)參數(shù)--cpuprofile=*.prof就可以再對(duì)應(yīng)目錄下生成一個(gè).pprof的文件,程序運(yùn)行的信息就都在這個(gè)文件里了。然后進(jìn)入對(duì)應(yīng)目錄,運(yùn)行命令:go tool pprof 加剛才生成的pprof文件命即可進(jìn)入到pprof中,輸入web命令,可以生成對(duì)應(yīng)的svg文件。

第二種方式:
再使用“net/http/pprof”包的時(shí)候,我們同樣可以使用go tool pprof命令來(lái)查看程序運(yùn)行的情況。例如我們啟動(dòng)了一個(gè)簡(jiǎn)單的go服務(wù)器程序,監(jiān)聽再8080端口,那么我們就可以使用以下命令進(jìn)入pprof的命令行:
利用這個(gè)命令查看堆棧信息:

go tool pprof http://localhost:6060/debug/pprof/heap
 利用這個(gè)命令可以查看程序CPU使用情況信息:
 go tool pprof http://localhost:6060/debug/pprof/profile
 使用這個(gè)命令可以查看block信息:
 go tool pprof http://localhost:6060/debug/pprof/block
 進(jìn)入pprof命令行,輸入help,查看命令幫助,
 topN命令可以查看占用前N 的線程或者函數(shù),用svg可以生成svg圖。
 pprof簡(jiǎn)單使用就是這樣了,掌握了使用方法,在實(shí)踐中加以利用才是我們的目的,希望我寫的這些可以對(duì)你有所幫助。

感謝各位的閱讀!關(guān)于怎樣使用golang的pprof包對(duì)程序進(jìn)行性能分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

文章標(biāo)題:怎樣使用golang的pprof包對(duì)程序進(jìn)行性能分析
本文來(lái)源:http://jinyejixie.com/article40/pshiho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、電子商務(wù)品牌網(wǎng)站建設(shè)、定制網(wǎng)站、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
琼中| 正镶白旗| 斗六市| 六枝特区| 罗山县| 安顺市| 清新县| 衡山县| 巴彦县| 金平| 营山县| 榆树市| 洛南县| 东海县| 玛沁县| 肥西县| 沙湾县| 阳谷县| 晋州市| 石台县| 东兰县| 德令哈市| 吕梁市| 南京市| 胶南市| 武汉市| 嵩明县| 兴海县| 祥云县| 怀来县| 英吉沙县| 遵化市| 乌鲁木齐县| 景宁| 博客| 清河县| 称多县| 宝兴县| 如皋市| 乌鲁木齐县| 连山|