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

主頁 > 知識庫 > 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語言程序查看和診斷工具詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 浏阳市| 波密县| 灌南县| 峡江县| 观塘区| 昌都县| 平山县| 绿春县| 剑川县| 广饶县| 绵竹市| 三穗县| 蓝山县| 陆河县| 岐山县| 交城县| 灵武市| 汝南县| 蕉岭县| 婺源县| 措勤县| 鄂伦春自治旗| 犍为县| 麻城市| 遵义县| 龙里县| 奉化市| 商河县| 蓝田县| 双城市| 廉江市| 伊吾县| 乌兰察布市| 武义县| 邢台县| 荆门市| 宜阳县| 宣汉县| 修武县| 安福县| 鄄城县|