google/gops:一個列出和診斷系統中正在執行Go 程式的命令列工具。
gops 是一個用來列出系統中正在使用的 Go 程式,同時還可以診斷正在執行的 Go 程式。
$ gops
983 uplink-soecks (/usr/local/bin/uplink-soecks)
52697 gops (/Users/jbd/bin/gops)
51130 gocode (/Users/jbd/bin/gocode)
診斷
stack
$ gops stack -p=<pid>
goroutine 35 [running]:
github.com/google/gops/agent.handle(0x11897a0, 0xc4200d0000, 0xc4200c6000, 0x1, 0x1, 0x0, 0x0)
/Users/jbd/src/github.com/google/gops/agent/agent.go:63 +0x182
github.com/google/gops/agent.init.1.func2(0x1189140, 0xc420078450)
/Users/jbd/src/github.com/google/gops/agent/agent.go:50 +0x242
created by github.com/google/gops/agent.init.1
/Users/jbd/src/github.com/google/gops/agent/agent.go:56 +0x240
goroutine 1 [sleep]:
time.Sleep(0x34630b8a000)
/Users/jbd/go/src/runtime/time.go:59 +0xf7
main.main()
/Users/jbd/src/github.com/google/gops/examples/hello/main.go:14 +0x30
goroutine 17 [syscall, locked to thread]:
runtime.goexit()
/Users/jbd/go/src/runtime/asm_amd64.s:2184 +0x1
goroutine 20 [syscall]:
os/signal.signal_recv(0x0)
/Users/jbd/go/src/runtime/sigqueue.go:116 +0xff
os/signal.loop()
/Users/jbd/go/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.1
/Users/jbd/go/src/os/signal/signal_unix.go:28 +0x41
goroutine 21 [select, locked to thread]:
runtime.gopark(0x1114a80, 0x0, 0x110d5ec, 0x6, 0x18, 0x2)
/Users/jbd/go/src/runtime/proc.go:261 +0x13a
runtime.selectgoImpl(0xc42003ff50, 0x0, 0x18)
/Users/jbd/go/src/runtime/select.go:423 +0x1307
runtime.selectgo(0xc42003ff50)
/Users/jbd/go/src/runtime/select.go:238 +0x1c
runtime.ensureSigM.func1()
/Users/jbd/go/src/runtime/signal_unix.go:408 +0x265
runtime.goexit()
/Users/jbd/go/src/runtime/asm_amd64.s:2184 +0x1
goroutine 34 [chan receive]:
github.com/google/gops/agent.init.1.func1(0xc4200740c0, 0xc4200880e0, 0x13)
/Users/jbd/src/github.com/google/gops/agent/agent.go:33 +0x40
created by github.com/google/gops/agent.init.1
/Users/jbd/src/github.com/google/gops/agent/agent.go:36 +0x214
gc
$ gops gc -p=<pid>
memstats
$ gops memstats -p=<pid>
alloc: 219792
total-alloc: 219792
sys: 2822144
lookups: 9
mallocs: 336
frees: 8
heap-alloc: 219792
heap-sys: 1605632
heap-idle: 1015808
heap-in-use: 589824
heap-released: 0
heap-objects: 328
stack-in-use: 491520
stack-sys: 491520
next-gc: 4473924
last-gc: 0 ns ago
gc-pause: 0 ns
num-gc: 0
enable-gc: true
debug-gc: false
version
$ gops version -p=<pid>
devel +4141054 Thu Nov 3 17:42:01 2016 +0000
https://github.com/google/gops
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 【Java面試】如何中斷一個正在執行的執行緒?Java面試執行緒
- gops 是怎麼和 Go 的執行時進行互動的?Go
- Java程式執行系統命令Java
- 使用lsblk命令列出系統中的塊裝置命令列
- Java執行緒診斷Java執行緒
- win10系統如何禁用診斷工具Win10
- 作業系統診斷工具truss, pstack, and pmap作業系統
- 幾個常用的網路診斷命令
- 系統硬碟診斷維護工具TechTool Pro 14中文硬碟
- 系統 boot 和執行根檔案系統中的命令特別重要boot
- 非專案目錄下命令列執行go程式遇到的問題命令列Go
- 怎樣停止一個正在執行的執行緒執行緒
- 列舉mysql正在執行中的全部事務MySql
- 詳解JAVA執行緒問題診斷工具Thread DumpJava執行緒thread
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- windows10系統診斷策略服務未執行如何解決Windows
- 20行Python程式碼擼一個命令列英語翻譯工具Python命令列
- 使用 Go 語言在 MacOS 建立一個自定義的命令列工具GoMac命令列
- 檢視正在執行的 Linux 系統版本Linux
- 使用 SOS 對 Linux 中執行的 .NET Core 進行問題診斷Linux
- Go的執行原理以及Go的命令Go
- 我們該如何正確的中斷一個執行緒的執行??執行緒
- Windows 的 wbadmin 命令是一個命令列實用程式,用於在 Windows 作業系統中進行備份和恢復操作。它提供了一種靈活、強大的方式來管理系統備份和還原,可以透過命令列介面執行各種備份任務,包括資料檔案、系統狀態以及整個系統的備份和恢復。Windows命令列作業系統
- 如何中斷一個正在發出的請求
- 收集 Linux 命令列執行的命令Linux命令列
- 【譯】Go和WebAssembly:在瀏覽器中執行Go程式GoWeb瀏覽器
- 整車EOL 診斷系統
- 整車EOL診斷系統
- go Cobra命令列工具入門Go命令列
- Linux系統執行命令方法Linux
- Python中執行系統命令常見的幾種方法Python
- 是否可以考慮做一個dotnet應用的效能診斷工具
- 動手實現一個適用於.NET Core 的診斷工具
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- Linux系統壓力測試工具(命令列工具)Linux命令列
- Oracle診斷案例-Job任務停止執行Oracle
- 網路診斷工具的使用
- 診斷通用售後系統 — DGA
- Advanced .Net Debugging 5:基本除錯任務(執行緒的操作、程式碼審查、CLR內部的命令、診斷命令和崩潰轉儲檔案)除錯執行緒