zoukankan      html  css  js  c++  java
  • golang(go语言)调试和查看gc信息,以及gc信息解析

    这里记录一下调试golang gc的方法
    启用gc打印:

    # GODEBUG=gctrace=1 go run ./main.go
    

    程序启动后gc将打印如下信息:

    gc 65 @16.996s 0%: 0+1.0+0 ms clock, 0+0/1.0/2.0+0 ms cpu, 10->10->4 MB, 11 MB goal, 4 P
    gc 66 @100.235s 0%: 0+1.0+0 ms clock, 0+1.0/1.0/2.0+0 ms cpu, 9->9->3 MB, 10 MB goal, 4 P
    GC forced
    gc 35 @127.931s 0%: 0+1.9+0 ms clock, 0+0/1.9/4.9+0 ms cpu, 8->8->3 MB, 9 MB goal, 4 P
    scvg0: inuse: 6, idle: 12, sys: 18, released: 0, consumed: 18 (MB)
    scvg0: inuse: 6, idle: 9, sys: 15, released: 0, consumed: 15 (MB)
    GC forced
    gc 67 @220.264s 0%: 0+0.98+0 ms clock, 0+0/0.98/2.9+0 ms cpu, 5->5->3 MB, 7 MB goal, 4 P
    

    gc打印信息的含义依次如下:

    1. gc 65 @16.996s:第65次执行,进程已经启动16.996秒
    2. 0%:本次执行gc占用的进程cpu时间的百分比
    3. 0+1.0+0 ms clock:本次gc的耗时。依次是STW清扫的时间, 并发标记和扫描的时间,STW标记的时间。(STW即stop-the-world,STW时间内进程完全被挂起)
    4. 0+0/1.0/2.0+0 ms cpu:本次gc占用cpu时间
    5. 10->10->4 MB:堆的大小,gc后堆的大小,存活堆的大小
    6. 11 MB goal:整体堆的大小
    7. 4 P:CPU核数
    8. GC forced:由runtime.GC()强制执行
    9. 系统内存回收信息
    	scvg0: inuse: 6, idle: 12, sys: 18, released: 0, consumed: 18 (MB)
    
     - inuse:使用多少M内存
     - idle:剩下要清除的内存
     - sys:系统映射的内存
     - released:释放的系统内存
     - consumed:申请的系统内存
  • 相关阅读:
    08.设计模式,和ES6let
    H5之本地存储
    07..前后台交互,设计模式
    查询出总数集合
    06.JSON+ajax+跨域+onde 环境搭建 笔记
    05 this 在不同环境下的指向 和正则
    04学习 JS 作用域 继承 闭包
    技术盛宴 | 从实战浅析运营商云资源池—解析流量模型
    从实战浅析运营商云资源池网络—技术的抉择
    ovn-sbctl
  • 原文地址:https://www.cnblogs.com/JoZSM/p/11041390.html
Copyright © 2011-2022 走看看