首页 > 系统相关 >golang 内存 stats 字段解释

golang 内存 stats 字段解释

时间:2023-05-19 11:33:23浏览次数:34  
标签:StackSys stats 字节数 占用 golang GC 内存 堆中

字段 解释 样例
Alloc 当前堆中已经分配给对象使用所占用的空间字节数 322952
TotalAlloc 累计堆中已经分配给对象使用所占用的空间字节数,只会增长,不会减少 29511472
Sys 总共从OS申请的字节数,包含运行时的heap、stack和其他内部数据结构的总和,它是虚拟内存空间。不一定全部映射成了物理内存 16335880
Mallocs 统计在堆中分配的对象计数,包括在存活的和已经释放的 5868
Frees 统计在堆中已经释放的对象计数 4912
HeapAlloc 同Alloc 322952
HeapSys 当前从Sys申请的字节数中,堆占用的字节数,HeapSys=HeapIdle+HeapInuse 7798784
HeapIdle 堆中空闲的字节数 6717440
HeapInuse 堆中在使用的字节数 1081344
HeapReleased 堆内存中已经返还给操作系统的总字节数 6586368
HeapObjects 在堆中存活的对象数,Mallocs-Frees,它所占用的空间等于Alloc 956
StackSys 当前从Sys申请的字节数中,stack占用的字节数
StackInuse StackInuse基本等于StackSys,它与StackSys相比,不包含系统线程级别的栈内存,不存在StackIdle数据,因为未使用的stack span会被返还给Heap
Stack Stack = StackInuse / StackSys 589824 / 589824
MSpanInuse 分给mspan结构体的字节数
MSpanSys 从OS中申请出来给mspan的字节数
MSpan MSpan = MSpanInuse / MSpanSys 80648 / 81600
MCacheSys 从OS中申请出来给mcache的字节数
MCacheInuse 分配给mcache结构体的字节数
MCache MCache = MCacheInuse / MCacheSys 14400 / 15600
BuckHashSys 1447146
GCSys 4502304
OtherSys 1900622
NextGC 下次GC的触发阈值,当HeapAlloc达到这个值就要GC了 4194304
LastGC 最近一次GC的unix时间戳 1684380874176908000
NumGC GC次数 17
NumForcedGC 应用程序强制GC的次数 0
GCCPUFraction GC总共占用的CPU资源。在0~1之间 2.13E-06
DebugGC FALSE
MaxRSS 13090816

标签:StackSys,stats,字节数,占用,golang,GC,内存,堆中
From: https://www.cnblogs.com/xiezhengcai/p/17414416.html

相关文章

  • Golang -embed结合viper打包静态文件
    代码含有viper独立方式和goembed方式packagemainimport("bytes""embed""fmt""time""github.com/spf13/viper")//go:embedconfig.yamlvarf[]bytefuncmain(){//config:=viper.New()......
  • Golang高性能编程笔记--字符串拼接
    Golang中引入五种字符串拼接方法,分别如下:1.+拼接法2.fmt.Sprintf()3.strings.Builder4.bytes.Buffer5.[]byte代码示例,这里将根据《Go语言高性能编程》中的一节,来看一下这五种具体的方法:packagemainimport( "bytes" "fmt" "math/rand" "strings......
  • Golang - go:embed
    总结GoEmbed有什么用处能够在命令行工具里嵌入WEBgoinstall快速安装,启动web该web可以提供生成代码的平台该web可以提供例如jsontostruct等数据结构转换可以大大提高Go的工具链能力能够将前端资源打包到一个二进制包里,方便部署和安装静态资源访问没有io操作,速度非常......
  • C语言--动态内存分配2
    realloc--追加动态内存空间relloc函数追加的两种形式:原动态内存空间后有足够空间进行追加时直接追加。返回原动态内存地址。原动态内存空间厚不够追加空间时,则重新开辟动态内存空间,复制原有内存空间大小、数据并在  其后追加空间。释放原动态内存,返回新的动态内存地址。动态内......
  • VScode下golang 同一个包下不同文件之间函数调用问题
    VScode下golang同一个包下不同文件之间函数调用问题1.问题发现最近在vscode上学习golang的相关开发,发现这样一个问题:同文件夹下的两个文件,在都处于main包的情况下,无法在mian()里直接调用另一个文件中的函数,会报错:undefined。2.原因分析从语法层面上似乎并无问题,但是Go中main......
  • 王道--第三章 内存管理
    3.1.1内存的基础知识内存可存放数据。程序执行前需要先放到内存中才能被CPU处理--缓和CPU与磁盘之间的速度矛盾。内存中也有一个一个的“小房间”,每个小房间就是一个“存储单元”;内存地址从0开始,每个地址对应一个存储单元;如果计算机“按字节编址”,则每个存储单元大小为1字节;如......
  • Golang - viper读取配置文件
    一、介绍Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:设置默认值从JSON、TOML、YAML、HCL和Javaproperties文件中读取配置数据可以监视配置文件的变动、重新读取配置文件从环境变量中读取配置数据从远端配置系统中读取数据,并......
  • C# 内存流转换为字节数组(内存流转比特数组)
    MemoryStreamms=newMemoryStream();//方法一byte[]bytes=ms.ToArray();//方法二byte[]bytes1=newbyte[ms.Length];ms.Read(bytes1,0,bytes1.Length);//设置当前流的......
  • 全面理解Java内存模型
    Java内存模型即JavaMemoryModel,简称JMM。JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的......
  • golang配置读取值viper
    viper简介Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持:设置默认值从JSON、TOML、YAML、HCL、envfile和Java属性配置文件中读取实时观看和重新读取配置文件(可选)从环境变量中读取从远程......