首页 > 解决方案 > 如果我从列表中删除元素 - 这是否意味着我的 RAM 也通过垃圾收集器或以某种方式被清除/释放?

问题描述

在我的程序中,我在一个循环中的列表中添加数百万条记录,因此随着程序的继续,我的 RAM 似乎也在增长(我怀疑是因为新元素和新元素被添加到列表中) - 所以如果一个计时器滴答事件或只是按钮在 list.Clear() 中推送结果:这会立即释放我的 RAM 吗?ram 似乎增长了很多,达到 500mb+,所以亚马逊实例上的免费数量有限,这是一个问题......谢谢!

标签: c#.netmemory-managementgarbage-collection

解决方案


列表具有 Clear() 或 Remove() 方法来清除或删除列表中的项目。强制清除列表中未使用的对象。或者可以将空值赋给那些没有被使用的Objects,这样Null Assigned Objects就可以对GC进行标记,表明它没有被使用并准备好被收集。

使用后将List Object赋值为Null,也有助于GC处理好。即:myListVariable = null; 这样内存就可以被 GC 清除,并且可以从未使用的 Objects 中释放出来。


推荐阅读