关于LOH(Large Object Heap)的。
.NET CLR中对于大于85000字节的内存既不像引用类型那样分配到普通堆上,也不像值类型那样分配到栈上,而是分配到了一个特殊的称为LOH的内部堆上,这部分的内存只有在GC执行完全回收,也就是回收二代内存的时候才会回收。因此,考虑如下情形:
假设你的程序每次都要分配一个大型对象(大于85000字节),但却很少分配小对象,导致2代垃圾回收从不执行,即使这些大对象不再被引用,依然得不到释放,最终导致内存泄漏。
作者:Ziheng
链接:https://www.zhihu.com/question/39047173/answer/111373831
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1,内存泄漏的情形