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

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

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

想必Java 的開發(fā)者沒有不知道或者沒用過 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 程序的性能優(yōu)化及 pprof 的使用》)?,F(xiàn)在有了 gops,分析 cpu 和內存使用就跟方便了。

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

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

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

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

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

相關文章

  • 深入理解Go語言對象池

    深入理解Go語言對象池

    對象池是一種在編程中用于優(yōu)化資源管理的技術,本文主要介紹了深入理解Go語言對象池,對象池通常通過sync.Pool包或自定義數據結構實現(xiàn),下面就來介紹一下
    2024-01-01
  • Golang實現(xiàn)超時機制讀取文件的方法示例

    Golang實現(xiàn)超時機制讀取文件的方法示例

    讀寫文件是Go程序的基本任務,包括使用程序查看文件內容、創(chuàng)建或修改文件,Go提供了os,ioutil,io以及bufio包實現(xiàn)文件操作,本文介紹如果在讀文件過程中增加超時機制,避免文件太大一直占用資源,需要的朋友可以參考下
    2025-01-01
  • golang中range在slice和map遍歷中的注意事項

    golang中range在slice和map遍歷中的注意事項

    今天小編就為大家分享一篇關于golang中range在slice和map遍歷中的注意事項,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • golang使用mapstructure解析json

    golang使用mapstructure解析json

    mapstructure?是一個?Go?庫,用于將通用映射值解碼為結構,這篇文章主要來和大家介紹一下golang如何使用mapstructure解析json,需要的可以參考下
    2023-12-12
  • 深入理解Go語言中的數組和切片

    深入理解Go語言中的數組和切片

    Go語言中的數組大概相當與C/C++中的數組,固定大小,不能夠動態(tài)擴展大小,而切片大概相當與C++中的Vector,可以動態(tài)擴展大小,當大小超過容量時,重新分配一塊內存,然后將數據復制到新的內存區(qū)域。下面我們通過幾個問題來更好理解golang 的數組和切片,一起來看看吧。
    2016-09-09
  • goLang引入自定義包的方法

    goLang引入自定義包的方法

    今天小編就為大家分享一篇goLang引入自定義包的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 構建go鏡像實現(xiàn)過程全面講解

    構建go鏡像實現(xiàn)過程全面講解

    這篇文章主要為大家介紹了構建go鏡像實現(xiàn)過程全面講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • golang切片反序實例

    golang切片反序實例

    這篇文章主要介紹了golang切片反序實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 詳解如何在Go項目中輸出版本信息

    詳解如何在Go項目中輸出版本信息

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

    Go語言中的Slice學習總結

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

最新評論

湘潭市| 西城区| 乌苏市| 石家庄市| 滕州市| 治县。| 清丰县| 舞阳县| 盘山县| 沧源| 江孜县| 安岳县| 湘乡市| 营口市| 桃园县| 韶关市| 明光市| 黔南| 潮州市| 北安市| 石嘴山市| 克拉玛依市| 阿克苏市| 柞水县| 永康市| 鄯善县| 永嘉县| 阳泉市| 衡南县| 温泉县| 普宁市| 白沙| 阜南县| 丹巴县| 阳曲县| 高安市| 鹤庆县| 滦南县| 丹阳市| 光山县| 鄯善县|