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

最新版Golang?pprof使用詳解(引入、抓取、分析,圖文結(jié)合)

 更新時間:2024年08月01日 10:53:26   作者:NPE~  
這篇文章主要介紹了最新版Golang?pprof使用詳解包括引入、抓取、分析,圖文結(jié)合,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

最新版Golang pprof使用

??具體實踐:

Github地址:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/go-demo/go-pprof

引入pprof:import _ “net/http/pprof”

引入pprof包,監(jiān)聽某個端口即可

一旦服務(wù)器啟動,pprof 就開始收集關(guān)于程序的性能數(shù)據(jù),包括 CPU 使用情況、內(nèi)存使用情況、阻塞事件、鎖競爭、goroutine 和線程統(tǒng)計信息等。當客戶端請求 pprof 的路由時,pprof 會根據(jù)請求的類型提供相應(yīng)的數(shù)據(jù)

package main
import "net/http"
import _ "net/http/pprof"
func main() {
	http.ListenAndServe(":8080", nil)
	select {}
}

文字版pprof信息:

http://ip:port/debug/pprof

引入包之后,啟動服務(wù),瀏覽器訪問http://ip:port/debug/pprof,即可查看文字版pprof信息。

比如我本地監(jiān)控8080,我瀏覽器訪問http://localhost:8080/debug/pprof:

圖形化查看:go tool pprof -http=“0.0.0.0:8089”

http://127.0.0.1:8080/debug/pprof/goroutine

如果覺得文字版不直觀,我們也可以本地再通過pprof工具啟一個web端口,以圖形化方式觀察:

//監(jiān)聽遠程pprof信息,并將其轉(zhuǎn)換為圖形化
//我這里拿本地127.0.0.1做演示。監(jiān)聽遠程pprof,將127.0.0.1更換為對應(yīng)ip即可
go tool pprof -http="0.0.0.0:8089"  http://127.0.0.1:8080/debug/pprof/goroutine

下載pprof信息到文件:curl -o heap.out http://IP:Port/debug/pprof/heap

//采樣pprof信息到文件,以采集heap信息為例:
//curl -o heap.out http://IP:Port/debug/pprof/heap
curl -o heap.out http://localhost:8080/debug/pprof/heap

下載pprof heap信息為heap.out文件:

直接抓取pprof信息并分析:

go tool pprof -seconds=5 http://localhost:8080/debug/pprof/profile

//采樣pprof信息并進入pprof命令行
go tool pprof -seconds=5 http://localhost:8080/debug/pprof/profile

采集cpu信息并分析:

本地加載pprof文件:go tool pprof heap.out

//go tool pprof 文件名
go tool pprof heap.out

保存pprof為圖片:png、svg

//命令行進入pprof
go tool pprof heap.out
//導出png圖片(導出svg,輸入svg即可)
png

top查看占用情況、list查看詳情

以獲取內(nèi)存為例:

  • flat:當前函數(shù)分配的內(nèi)存,不包含它調(diào)用其他函數(shù)造成的內(nèi)存分配
  • flat%:當前函數(shù)分配內(nèi)存占比
  • sum%:自己和前面所有的flat%累積值
  • cum:當前函數(shù)及當前函數(shù)調(diào)用其他函數(shù)的分配內(nèi)存的匯總
  • cum%:這個函數(shù)分配的內(nèi)存,以及它調(diào)用其他函數(shù)分配的內(nèi)存之和
//命令行進入pprof
go tool pprof heap.out
//top 5,查看占用前5的函數(shù)
top 5
//list + 函數(shù)名,查看函數(shù)詳情(具體是哪個位置占用較高)
list http.HandlerFunc.ServeHTTP

參數(shù)解析

詳情請見:http://www.fzitv.net/jiaoben/319016j3j.htm

allocs:內(nèi)存分配,歷史累計

allocs: A sampling of all past memory allocations【所有內(nèi)存分配,歷史累計】

block:導致阻塞的堆棧記錄,歷史累計

block: Stack traces that led to blocking on synchronization primitives【導致阻塞同步的堆棧,歷史累計】

cmdline:當前程序命令行完整調(diào)用路徑

cmdline: The command line invocation of the current program【當前程序命令行的完整調(diào)用路徑】

goroutine:當前程序所有g(shù)oroutine堆棧信息,實時變化

goroutine: Stack traces of all current goroutines. Use debug=2 as a query parameter to export in the same format as an unrecovered panic.【當前所有運行的goroutine堆棧信息,實時變化】

heap:活動對象內(nèi)存分配情況,實時變化

heap: A sampling of memory allocations of live objects. You can specify the gc GET parameter to run GC before taking the heap sample.【查看活動對象的內(nèi)存分配情況,實時變化】

mutex:鎖競爭記錄,歷史累計

mutex: Stack traces of holders of contended mutexes【導致互斥鎖競爭持有者的堆棧跟蹤,歷史累計】

profile:cpu使用情況

profile: CPU profile. You can specify the duration in the seconds GET parameter. After you get the profile file, use the go tool pprof command to investigate the profile.【默認進行30s的CPU Profing,用于觀察CPU使用情況】

threadcreate:新線程創(chuàng)建情況

threadcreate: Stack traces that led to the creation of new OS threads【查看創(chuàng)建新OS線程的堆棧跟蹤信息】

trace:當前程序執(zhí)行鏈路

trace: A trace of execution of the current program. You can specify the duration in the seconds GET parameter. After you get the trace file, use the go tool trace command to investigate the trace.【當前程序執(zhí)行鏈路】

其他參數(shù) flat:當前函數(shù)的數(shù)據(jù),不含調(diào)用其他函數(shù)

以內(nèi)存為例, flat:當前函數(shù)分配的內(nèi)存,不包含它調(diào)用其他函數(shù)造成的內(nèi)存分配

flat%:當前函數(shù)分配占比

例:flat%:當前函數(shù)分配內(nèi)存占比

sum%:自己和前面所有的flat%累積值 cum:當前函數(shù)及當前函數(shù)調(diào)用其他函數(shù)分配總和

例: 當前函數(shù)及當前函數(shù)調(diào)用其他函數(shù)的分配內(nèi)存的匯總

cum%:當前函數(shù)及當前函數(shù)調(diào)用其他函數(shù)分配總和占比

例:這個函數(shù)分配的內(nèi)存,以及它調(diào)用其他函數(shù)分配的內(nèi)存之和

到此這篇關(guān)于最新版Golang pprof使用(引入、抓取、分析,圖文結(jié)合)的文章就介紹到這了,更多相關(guān)Golang pprof使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang實現(xiàn)ftp功能簡單又實用(示例代碼)

    golang實現(xiàn)ftp功能簡單又實用(示例代碼)

    本文介紹了如何使用Go語言實現(xiàn)FTP功能,包括加載配置文件和處理FTP部分,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-12-12
  • go語言題解LeetCode1122數(shù)組的相對排序

    go語言題解LeetCode1122數(shù)組的相對排序

    這篇文章主要為大家介紹了go語言題解LeetCode1122數(shù)組的相對排序,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換

    golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換

    這篇文章主要給大家介紹了關(guān)于golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換的相關(guān)資料,在Go語言中string轉(zhuǎn)int是一項常見的操作,需要的朋友可以參考下
    2023-07-07
  • Go語言什么時候該使用指針

    Go語言什么時候該使用指針

    本文主要介紹了Go語言什么情況下應(yīng)該使用指針,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • golang?gorm的關(guān)系關(guān)聯(lián)實現(xiàn)示例

    golang?gorm的關(guān)系關(guān)聯(lián)實現(xiàn)示例

    這篇文章主要為大家介紹了golang?gorm的關(guān)系關(guān)聯(lián)實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • Go語言基本類型轉(zhuǎn)換的實現(xiàn)示例

    Go語言基本類型轉(zhuǎn)換的實現(xiàn)示例

    本文詳細介紹了Go語言中的基本類型轉(zhuǎn)換方法,包括字符串與基本類型之間的轉(zhuǎn)換、浮點數(shù)與字符串之間的轉(zhuǎn)換、布爾型與字符串之間的轉(zhuǎn)換,以及基本類型之間的強制轉(zhuǎn)換以及格式化輸出,感興趣的可以了解一下
    2024-11-11
  • 創(chuàng)建Go工程化項目布局詳解

    創(chuàng)建Go工程化項目布局詳解

    這篇文章主要介紹了創(chuàng)建Go工程化項目布局詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • go語言中布隆過濾器低空間成本判斷元素是否存在方式

    go語言中布隆過濾器低空間成本判斷元素是否存在方式

    這篇文章主要為大家介紹了go語言中布隆過濾器低空間成本判斷元素是否存在方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Go部署多環(huán)境開發(fā)的項目實戰(zhàn)

    Go部署多環(huán)境開發(fā)的項目實戰(zhàn)

    在 Go 項目的開發(fā)過程中,能夠在不同的環(huán)境(如開發(fā)、測試、生產(chǎn))中進行靈活部署是至關(guān)重要的,不同環(huán)境通常需要不同的配置,下面就來詳細的介紹一下Go部署多環(huán)境
    2026-02-02
  • golang 各種排序大比拼實例

    golang 各種排序大比拼實例

    這篇文章主要介紹了golang 各種排序大比拼實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論

海南省| 托克托县| 湘阴县| 孟连| 常德市| 什邡市| 土默特右旗| 阳西县| 六安市| 司法| 北票市| 淳化县| 福建省| 精河县| 施秉县| 阳西县| 绥江县| 喀喇沁旗| 西宁市| 鹤山市| 西丰县| 方城县| 岳普湖县| 嘉鱼县| 沾益县| 凤庆县| 苏尼特右旗| 凤凰县| 沁阳市| 清丰县| 宜兰县| 铜梁县| 博爱县| 常熟市| 德钦县| 包头市| 蒙城县| 嵊州市| 东乡族自治县| 沂源县| 徐水县|