最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang開(kāi)發(fā)安裝go-torch火焰圖操作步驟

 更新時(shí)間:2021年11月16日 11:37:33   作者:秋天的春  
這篇文章主要為大家介紹了golang開(kāi)發(fā)安裝go-torch火焰圖操作步驟

安裝

    1、 安裝go-torch

            go get github.com/uber/go-torch  

    2、安裝FlameGraph

            cd $GOPATH && git clone  https://github.com/brendangregg/FlameGraph.git

      export PATH=$PATH:$GOPATH/FlameGraph

【這步一定要設(shè)置,生成火焰圖時(shí)會(huì)用到】

    3、安裝graphviz (CentOS, Redhat) 

      yum install graphviz

在程序的包含mian函數(shù)的文件中添加相應(yīng)代碼

使用

package main
import ( 
"net/http" 
"net/http/pprof" 
) 
func main() { 
// 主函數(shù)中添加
go func(){ 
http.HandleFunc("/debug/pprof/block", pprof.Index) 
http.HandleFunc("/debug/pprof/goroutine", pprof.Index) 
http.HandleFunc("/debug/pprof/heap", pprof.Index) 
http.ListenAndServe("0.0.0.0:8888", nil) //注意此處,遇到錯(cuò)誤 
}() 
//你的代碼 
}

然后壓測(cè)的時(shí)候,在go 的bin目錄下找到go-torch,去運(yùn)行,會(huì)把緩存的數(shù)據(jù)輸出到文件中

./go-torch -u http://localhost:8080/debug/pprof/ -p > profile-local.svg 
./go-torch -u http://localhost:8080/debug/pprof/heap -p > heap-local.svg

另一種自定義顯示方式

代碼修改

import "net/http"
import _ "net/http/pprof"
func main() {
    // 主函數(shù)中添加
    go func() {
		http.HandleFunc("/program/html", htmlHandler) // 用來(lái)查看自定義的內(nèi)容
		log.Println(http.ListenAndServe("0.0.0.0:8080", nil))
	}()
}

使用

# 用 -u 分析CPU使用情況
./go-torch -u http://127.0.0.1:8080
# 用 -alloc_space 來(lái)分析內(nèi)存的臨時(shí)分配情況
./go-torch -alloc_space http://127.0.0.1:8080/debug/pprof/heap --colors=mem
# 用 -inuse_space 來(lái)分析程序常駐內(nèi)存的占用情況;
./go-torch -inuse_space http://127.0.0.1:8080/debug/pprof/heap --colors=mem
# 畫(huà)出內(nèi)存分配圖
go tool pprof -alloc_space -cum -svg http://127.0.0.1:8080/debug/pprof/heap > heap.svg

查看

使用瀏覽器查看svg文件,程序運(yùn)行中,可以登錄 http://127.0.0.1:10086/debug/pprof/ 查看程序?qū)崟r(shí)狀態(tài) 在此基礎(chǔ)上,可以通過(guò)配置handle來(lái)實(shí)現(xiàn)自定義的內(nèi)容查看,可以添加Html格式的輸出,優(yōu)化顯示效果

func writeBuf(buffer *bytes.Buffer, format string, a ...interface{}) {
	(*buffer).WriteString(fmt.Sprintf(format, a...))
}
func htmlHandler(w http.ResponseWriter, req *http.Request) {
	io.WriteString(w, statusHtml())
}
// 訪問(wèn) localhost:8080/program/html 可以看到一個(gè)表格,一秒鐘刷新一次
func statusHtml() string {
	var buf bytes.Buffer
	buf.WriteString("<html><meta http-equiv=\"refresh\" content=\"1\">" +
		"<body><h2>netflow-decoder status count</h2>" +
		"<table width=\"500px\" border=\"1\" cellpadding=\"5\" cellspacing=\"1\">" +
		"<tr><th>NAME</th><th>TOTAL</th><th>SPEED</th></tr>")
	writeBuf(&buf, "<tr><td>UDP</td><td>%d</td><td>%d</td></tr>",
		lastRecord.RecvUDP, currSpeed.RecvUDP)	
	writeBuf(&buf, "</table><p>Count time: %s</p><p>Time now: %s</p>",
		countTime.Format("2006-01-02 15:04:05"), time.Now().Format("2006-01-02 15:04:05"))
	buf.WriteString("</body></html>")
	return buf.String()
} 

以上就是golang開(kāi)發(fā)安裝go-torch火焰圖操作步驟的詳細(xì)內(nèi)容,火焰圖的效果網(wǎng)上很多,更多關(guān)于golang的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用golang-unsafe包的注意事項(xiàng)及說(shuō)明

    使用golang-unsafe包的注意事項(xiàng)及說(shuō)明

    這篇文章主要介紹了使用golang-unsafe包的注意事項(xiàng)及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Go語(yǔ)言獲取文件的名稱(chēng)、前綴、后綴

    Go語(yǔ)言獲取文件的名稱(chēng)、前綴、后綴

    這篇文章主要介紹了Go語(yǔ)言獲取文件的名稱(chēng)、前綴、后綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • golang數(shù)據(jù)結(jié)構(gòu)之golang稀疏數(shù)組sparsearray詳解

    golang數(shù)據(jù)結(jié)構(gòu)之golang稀疏數(shù)組sparsearray詳解

    這篇文章主要介紹了golang數(shù)據(jù)結(jié)構(gòu)之golang稀疏數(shù)組sparsearray的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Go語(yǔ)言實(shí)現(xiàn)新春祝福二維碼的生成

    Go語(yǔ)言實(shí)現(xiàn)新春祝福二維碼的生成

    二維碼現(xiàn)在是隨處度可以看到,買(mǎi)東西,支付,添加好友只要你掃一掃就能完成整個(gè)工作,簡(jiǎn)單且方便。所以利用這個(gè)新春佳節(jié)做一個(gè)帶著新春祝福的二維碼吧
    2023-02-02
  • Go語(yǔ)言使用defer+recover解決panic導(dǎo)致程序崩潰的問(wèn)題

    Go語(yǔ)言使用defer+recover解決panic導(dǎo)致程序崩潰的問(wèn)題

    如果協(xié)程出現(xiàn)了panic,就會(huì)造成程序的崩潰,這時(shí)可以在goroutine中使用recover來(lái)捕獲panic,進(jìn)行處理,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-09-09
  • 詳解Go語(yǔ)言中自定義結(jié)構(gòu)體能作為map的key嗎

    詳解Go語(yǔ)言中自定義結(jié)構(gòu)體能作為map的key嗎

    在Go中,引用類(lèi)型具有動(dòng)態(tài)的特性,可能會(huì)被修改或指向新的數(shù)據(jù),這就引發(fā)了一個(gè)問(wèn)題—能否將包含引用類(lèi)型的自定義結(jié)構(gòu)體作為map的鍵呢,本文就來(lái)和大家想想講講
    2023-06-06
  • go語(yǔ)言中數(shù)據(jù)接口set集合的實(shí)現(xiàn)

    go語(yǔ)言中數(shù)據(jù)接口set集合的實(shí)現(xiàn)

    set集合是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它代表了一個(gè)唯一元素的集合,本文主要介紹了set的基本特性,包括唯一性、無(wú)序性、可變性和集合運(yùn)算,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • go env環(huán)境變量配置的使用

    go env環(huán)境變量配置的使用

    在安裝和使用Go時(shí),必須要正確地配置環(huán)境變量,本文主要介紹了go env環(huán)境變量配置的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Golang實(shí)現(xiàn)事務(wù)型內(nèi)存數(shù)據(jù)庫(kù)的方法詳解

    Golang實(shí)現(xiàn)事務(wù)型內(nèi)存數(shù)據(jù)庫(kù)的方法詳解

    內(nèi)存數(shù)據(jù)庫(kù)經(jīng)我們經(jīng)常用到,例如Redis,那么如何從零實(shí)現(xiàn)一個(gè)內(nèi)存數(shù)據(jù)庫(kù)呢,本文旨在介紹如何使用Golang編寫(xiě)一個(gè)KV內(nèi)存數(shù)據(jù)庫(kù)MossDB
    2023-03-03
  • Golang基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理

    Golang基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理

    這篇文章主要為大家詳細(xì)介紹了Golang如何基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04

最新評(píng)論

和平县| 南川市| 公安县| 曲阳县| 延吉市| 唐河县| 延吉市| 庄浪县| 五莲县| 上栗县| 镇原县| 美姑县| 通山县| 连江县| 陇南市| 马边| 神农架林区| 揭西县| 襄城县| 元氏县| 海宁市| 武义县| 泸溪县| 湘潭县| 龙里县| 酒泉市| 安多县| 富顺县| 青神县| 黄冈市| 云阳县| 安乡县| 平阳县| 陵水| 什邡市| 宿迁市| 收藏| 阿克陶县| 桃源县| 临邑县| 台中县|