婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

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

我剛用 Go 語言程序的時候也很苦惱,我部署在公司服務器上的 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 的使用》)。現(xiàn)在有了 gops,分析 cpu 和內(nèi)存使用就跟方便了。

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

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

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

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

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

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

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

巨人網(wǎng)絡通訊聲明:本文標題《Go語言程序查看和診斷工具詳解》,本文關鍵詞  語言程序,查看,和,診斷,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言程序查看和診斷工具詳解》相關的同類信息!
  • 本頁收集關于Go語言程序查看和診斷工具詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 伽师县| 南通市| 藁城市| 清河县| 阿合奇县| 二连浩特市| 伊金霍洛旗| 内江市| 阿城市| 贞丰县| 金乡县| 含山县| 仁寿县| 闽侯县| 化州市| 同心县| 安宁市| 新龙县| 习水县| 腾冲县| 广汉市| 攀枝花市| 德阳市| 池州市| 华阴市| 繁昌县| 渝中区| 新巴尔虎右旗| 哈尔滨市| 达日县| 呼伦贝尔市| 老河口市| 东乡族自治县| 丰台区| 阿尔山市| 南投市| 无锡市| 栖霞市| 陈巴尔虎旗| 金昌市| 曲阜市|