单声道中的数组分配的内存不释放(C#)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单声道中的数组分配的内存不释放(C#)相关的知识,希望对你有一定的参考价值。
在我的C#程序中我有功能,在其中,我创建长度为1000000的字节数组,当执行该功能时,内存显示内存使用量增加1MB。问题出在这里,从函数返回后,在函数中分配的1MB内存不释放,为什么????
答案
垃圾收集器不会立即释放内存但是
当满足下列条件之一时,将发生垃圾收集:
系统物理内存较低。这可以通过OS的低内存通知或主机指示的低内存来检测。
托管堆上已分配对象使用的内存超过可接受的阈值。在该过程运行时不断调整该阈值。
调用GC.Collect方法。几乎在所有情况下,您都不必调用此方法,因为垃圾收集器会持续运行。此方法主要用于独特的情况和测试。
你可以找到更多here。
以上是关于单声道中的数组分配的内存不释放(C#)的主要内容,如果未能解决你的问题,请参考以下文章