国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

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

2020-04-01 19:02:28
字體:
來源:轉載
供稿:網(wǎng)友

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

Go語言,診斷工具

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

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

安裝

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

go get -u github.com/google/gops

簡單使用

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

Go語言,診斷工具

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

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語言,診斷工具

Go語言,診斷工具

Go語言,診斷工具

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

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

Go語言,診斷工具

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

Go語言,診斷工具

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 敦化市| 钦州市| 独山县| 马尔康县| 浦县| 思茅市| 苗栗市| 六安市| 泾源县| 新宁县| 图木舒克市| 屏南县| 上林县| 大埔区| 故城县| 景德镇市| 苍溪县| 古蔺县| 涟源市| 宾阳县| 都昌县| 巴林右旗| 青河县| 莒南县| 余姚市| 棋牌| 临高县| 依兰县| 阳新县| 光山县| 义马市| 巍山| 扎鲁特旗| 建阳市| 井冈山市| 隆化县| 松阳县| 泸水县| 河南省| 西和县| 项城市|