【发布时间】:2018-09-12 12:06:07
【问题描述】:
在我的 C# 程序中,我有一个函数,我创建了长度为 1000000 的字节数组,当函数执行时,内存显示内存使用量增加了 1MB。 问题就在这里,从函数返回后,函数中分配的1MB内存没有释放,为什么????
【问题讨论】:
标签: c# garbage-collection mono
在我的 C# 程序中,我有一个函数,我创建了长度为 1000000 的字节数组,当函数执行时,内存显示内存使用量增加了 1MB。 问题就在这里,从函数返回后,函数中分配的1MB内存没有释放,为什么????
【问题讨论】:
标签: c# garbage-collection mono
垃圾收集器不会立即释放内存,而是
当下列条件之一为真时发生垃圾收集:
系统的物理内存不足。这可以通过来自操作系统的内存不足通知或主机指示的内存不足来检测。
托管堆上分配的对象使用的内存超过了可接受的阈值。此阈值会随着进程的运行不断调整。
GC.Collect 方法被调用。在几乎所有情况下,您都不必调用此方法,因为垃圾收集器会持续运行。此方法主要用于特殊情况和测试。
您可以找到更多here。
【讨论】: