.net - 当 .NET 垃圾收集压缩堆时, "Allocate Bytes"性能计数器是否更新?

标签 .net memory garbage-collection

.NET CLR 的垃圾收集器压缩堆。我认为这意味着当它扫过以删除未标记的对象时,堆上的下一个(仍然存在的)对象被向上移动。因此,根据我的理解,压缩会移动对象。当这些对象被移动时,移动会影响 Allocated Bytes/Sec 性能计数器吗?或者这个计数器只是添加到堆上的字节数?

最佳答案

根据 this article在 GC perf 计数器上,“Allocated bytes/s”计数器计算 Gen0 和 LOH 中对象的分配字节数。由于 Gen0 总是在每次 Gen0 GC 后清空,并且 LOH 从不进行碎片整理,因此它不应影响此指标。

关于.net - 当 .NET 垃圾收集压缩堆时, "Allocate Bytes"性能计数器是否更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099223/

相关文章:

c# - 如何创建具有多个元素的X509Chain?

c# - 通过 https 从 C# 使用 POST 发布

C++ 调用析构函数并没有真正从内存中删除对象

c - 传递的参数更改值

java - 一段时间后重置变量

c# - 在 Silverlight 中使用反射迭代所有引用程序集中的类型?

c# - 如何查询子表值

java - 哪个内存用于从 java 运行的外部进程 - java 堆空间或操作系统内存?

java - 如何从 Java 生成大型(1GB)示例 gc 日志文件

java - 我对 MaxMetaspaceSize 感到困惑