关于LOH(Large Object Heap)及内存泄漏

Posted 时空观察者9号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于LOH(Large Object Heap)及内存泄漏相关的知识,希望对你有一定的参考价值。

关于LOH(Large Object Heap)的。

.NET CLR中对于大于85000字节的内存既不像引用类型那样分配到普通堆上,也不像值类型那样分配到栈上,而是分配到了一个特殊的称为LOH的内部堆上,这部分的内存只有在GC执行完全回收,也就是回收二代内存的时候才会回收。因此,考虑如下情形:

假设你的程序每次都要分配一个大型对象(大于85000字节),但却很少分配小对象,导致2代垃圾回收从不执行,即使这些大对象不再被引用,依然得不到释放,最终导致内存泄漏。



作者:Ziheng
链接:https://www.zhihu.com/question/39047173/answer/111373831
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

以上是关于关于LOH(Large Object Heap)及内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

论文翻译 DOTA:A Large-scale Dataset for Object Detection in Aerial Images

开启LOH压缩?

如何使这个 SQL 查询更高效?

Postgresql中的large object

SOS windbg 中的啥命令只能为 Gen 2 和 LOH 转储堆?

PerfMon 差异 - “所有堆中的字节”内存不等于 gen0 + gen1 + gen2 + LOH