校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

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

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

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

那么 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 程序的性能優化及 pprof 的使用》)。現在有了 gops,分析 cpu 和內存使用就跟方便了。

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

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

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

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

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

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

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

巨人網絡通訊聲明:本文標題《Go語言程序查看和診斷工具詳解》,本文關鍵詞  語言程序,查看,和,診斷,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言程序查看和診斷工具詳解》相關的同類信息!
  • 本頁收集關于Go語言程序查看和診斷工具詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 逊克县| 庐江县| 逊克县| 皮山县| 鄂温| 祁门县| 甘洛县| 长武县| 石狮市| 禹州市| 新密市| 张家川| 高雄市| 慈利县| 通山县| 汝州市| 富平县| 尉氏县| 陆河县| 哈密市| 舒兰市| 柘城县| 连山| 东光县| 四会市| 遂宁市| 云林县| 桦甸市| 黑山县| 隆林| 武功县| 嘉善县| 左权县| 三亚市| 奉新县| 马尔康县| 霍山县| 剑河县| 黎平县| 城口县| 新竹县|