Go 等效于TotalAlloc,具有新的运行时/度量接口
Go 1.16推出了新的软件包 PackageMetrics提供了一个稳定的接口来访问Go运行时导出的实现定义的指标。该软件包类似于runtime.ReadMemStats和debug.ReadGCStats等现有函数,但更为通用 我正在移植一组旧的度量(其中使用了通过Go 等效于TotalAlloc,具有新的运行时/度量接口,go,memory,heap-memory,Go,Memory,Heap Memory,Go 1.16推出了新的软件包 PackageMetrics提供了一个稳定的接口来访问Go运行时导出的实现定义的指标。该软件包类似于runtime.ReadMemStats和debug.ReadGCStats等现有函数,但更为通用 我正在移植一组旧的度量(其中使用了通过runtime.ReadMemStats(&memstats)读取的这两个值) runtime.mstats //MemStats记录有关内存分配器的统计信息。 类型MemStats struct{ //一般统计。 //Alloc
runtime.ReadMemStats(&memstats)
读取的这两个值)
runtime.mstats
//MemStats记录有关内存分配器的统计信息。
类型MemStats struct{
//一般统计。
//Alloc是已分配堆对象的字节数。
//
//这与HeapAlloc相同(见下文)。
Alloc uint64
//TotalAlloc是为堆对象分配的累积字节数。
//
//TotalAlloc随着堆对象的分配而增加,但
//与Alloc和HeapAlloc不同,当
//对象被释放。
TotalAlloc uint64
我认为Alloc
大致相当于新的/memory/classes/heap/objects:bytes
,但我不知道如何处理TotalAlloc
。我看不到一个简单的方法来恢复这个值。而且:这有用吗?Go是一种垃圾收集语言,所以拥有一个累积堆值对他甚至都没有帮助ap片段分析
所以问题是:这仍然有用吗?如果有用,我如何用新的API取代旧的API来恢复它