主頁 > 知識庫 > Go語言程序查看和診斷工具詳解

Go語言程序查看和診斷工具詳解

熱門標簽:黃岡人工智能電銷機器人哪個好 惠州電銷防封電話卡 建造者2地圖標注 鄭州亮點科技用的什么外呼系統(tǒng) 浙江高頻外呼系統(tǒng)多少錢一個月 濱州自動電銷機器人排名 阿里云ai電話機器人 汕頭小型外呼系統(tǒng) 釘釘有地圖標注功能嗎

想必Java 的開發(fā)者沒有不知道或者沒用過 jps 這個命令的,這個命令是用來在主機上查看有哪些 Java 程序在運行的。

我剛用 Go 語言程序的時候也很苦惱,我部署在公司服務(wù)器上的 Go 程序,其他的同事由于不清楚就經(jīng)常找不到。

那么 Go 語言有沒有像 jps 這樣的工具呢?當然有,不僅有,而且還是 Google 自己出品的,官方認證(這種問題 Google 不可能自己想不到?。?。名稱也跟 jps 很像,叫 gops。

安裝

gops 并不包含在官方安裝包中,不屬于標準工具。需要手動獲取。

go get -u github.com/google/gops

簡單使用

goes 的使用方法非常簡單,我們看一下 help 文檔就可以了。

最簡單的用法就是 gops,會直接列出正在運行的 Go 程序

會依次列出 PID,PPID,程序名稱,編譯使用的 Go 版本號,程序路徑。信息比 jps 還詳細,不錯哦。

不止如此,gops 還能進行程序的診斷。

診斷

可能有人注意到了上面我的 memory-test 程序后面有個 * 號。這是因為程序中我加入了 gops 用的診斷支持代碼:

if err := agent.Listen(agent.Options{ShutdownCleanup:true}); err != nil {
 log.Fatalln(err)
}

對于這樣的程序,我們才能進行 gops pprof-cpu 和 gops pprof-heap 等命令。(stack, gc, setgc, memstats, version, stats, trace 等命令運行同樣需要加入上面的代碼)。

使用很簡單,就直接貼一點圖,不講了。

因為 go pprof 命令有助于我們分析程序,相對來說更加常用。但是以往用起來相對要麻煩一些(可參照本人另一篇《Go 程序的性能優(yōu)化及 pprof 的使用》)?,F(xiàn)在有了 gops,分析 cpu 和內(nèi)存使用就跟方便了。

gops 不僅支持本地使用,而且支持遠程。查看 agent.Options:

可以設(shè)置 Addr 為 host:port 形式。我這邊設(shè)置為 ":9779"。將其部署到遠程服務(wù)器上,運行命令 gops pprof-heap 192.168.199.210:9779,可以看到:

完全可行。 (注意,不僅只有 pprof-heap,gops 所有命令都支持遠程)

在我們的程序中加入診斷用代碼,當部署到遠程服務(wù)器上,也能很方便地分析程序情況。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • GO語言實現(xiàn)的http抓包分析工具pproxy介紹

標簽:滄州 晉中 泰安 東營 阿壩 昭通 瀘州 駐馬店

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Go語言程序查看和診斷工具詳解》,本文關(guān)鍵詞  語言程序,查看,和,診斷,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語言程序查看和診斷工具詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go語言程序查看和診斷工具詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章