c# - 如果我从列表中删除元素 - 这是否意味着我的 RAM 也通过垃圾收集器或以某种方式被清除/释放?
问题描述
在我的程序中,我在一个循环中的列表中添加数百万条记录,因此随着程序的继续,我的 RAM 似乎也在增长(我怀疑是因为新元素和新元素被添加到列表中) - 所以如果一个计时器滴答事件或只是按钮在 list.Clear() 中推送结果:这会立即释放我的 RAM 吗?ram 似乎增长了很多,达到 500mb+,所以亚马逊实例上的免费数量有限,这是一个问题......谢谢!
解决方案
列表具有 Clear() 或 Remove() 方法来清除或删除列表中的项目。强制清除列表中未使用的对象。或者可以将空值赋给那些没有被使用的Objects,这样Null Assigned Objects就可以对GC进行标记,表明它没有被使用并准备好被收集。
使用后将List Object赋值为Null,也有助于GC处理好。即:myListVariable = null; 这样内存就可以被 GC 清除,并且可以从未使用的 Objects 中释放出来。
推荐阅读
- java - 错误:缺少工件 org.thymeleaf:thymeleaf-spring5:jar:3.0.3.RELEASE
- python - Python-如何从一个文件中复制声音并将其粘贴到另一个文件中?
- python - 将矩阵邻接转换为 CSV 文件中的源、目标、值(python)
- serverless-framework - AWS 无服务器应用程序的产品级目录结构
- c++ - 调试 GPU 操作
- html - 导航栏布局在更大的屏幕尺寸下存在问题
- javascript - 单击后如何将 info_link 更改为红色并增加字体大小?
- azure - Terraform 错误:循环:azurerm_subnet_service_endpoint_storage_policy.stg
- php - 如何将参数传递给laravel中的监听器?
- jenkins - 无法从詹金斯管道中的 GitHub Web 挂钩触发器获取有效负载