最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年11月05日 10:31:21   作者:snowInPluto  
這篇文章主要為大家詳細(xì)介紹了Go語言程序查看和診斷工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

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

那么 Go 語言有沒有像 jps 這樣的工具呢?當(dāng)然有,不僅有,而且還是 Google 自己出品的,官方認(rèn)證(這種問題 Google 不可能自己想不到?。CQ也跟 jps 很像,叫 gops。

安裝

gops 并不包含在官方安裝包中,不屬于標(biāo)準(zhǔn)工具。需要手動(dòng)獲取。

go get -u github.com/google/gops

簡單使用

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

最簡單的用法就是 gops,會(huì)直接列出正在運(yùn)行的 Go 程序

會(huì)依次列出 PID,PPID,程序名稱,編譯使用的 Go 版本號(hào),程序路徑。信息比 jps 還詳細(xì),不錯(cuò)哦。

不止如此,gops 還能進(jìn)行程序的診斷。

診斷

可能有人注意到了上面我的 memory-test 程序后面有個(gè) * 號(hào)。這是因?yàn)槌绦蛑形壹尤肓?gops 用的診斷支持代碼:

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

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

使用很簡單,就直接貼一點(diǎn)圖,不講了。

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

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

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

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

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

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

相關(guān)文章

  • 詳解如何在Go項(xiàng)目中輸出版本信息

    詳解如何在Go項(xiàng)目中輸出版本信息

    這篇文章主要介紹了詳解如何在Go項(xiàng)目中輸出版本信息,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Go語言中的Slice學(xué)習(xí)總結(jié)

    Go語言中的Slice學(xué)習(xí)總結(jié)

    這篇文章主要介紹了Go語言中的Slice學(xué)習(xí)總結(jié),本文講解了Slice的定義、Slice的長度和容量、Slice是引用類型、Slice引用傳遞發(fā)生“意外”等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • 最新評(píng)論

    吉木萨尔县| 巧家县| 府谷县| 旬阳县| 姚安县| 济宁市| 勃利县| 白河县| 巴中市| 河南省| 中阳县| 同仁县| 吉首市| 宁安市| 麻栗坡县| 洱源县| 湖口县| 张家口市| 长顺县| 寿宁县| 包头市| 衡南县| 清河县| 越西县| 同江市| 乐至县| 叶城县| 新干县| 秀山| 湛江市| 徐汇区| 宣威市| 和平区| 宣城市| 翁源县| 特克斯县| 兴国县| 连州市| 定日县| 西乌| 兖州市|