我有一个程序可以处理一堆包含许多列的 csv 文件,以便用户可以拉出特定的列并将它们写入另一个更小的 csv 文件,并且只包含他们需要的内容。由于最多可以有 800 万行,因此我使用列表创建了一个队列系统,它将片段(一次 50000 行)添加到列表缓冲区,以便编写者可以写入该片段,然后用于listbuffer[i].clear();
删除它,这样我使用的内存要少得多,并且还将缓冲区限制为仅包含 10 个项目,从而使总内存使用量保持在我需要的最低水平。
我的问题是,listbuffer[i].clear();
直到整个程序完成并且我重新初始化了缓冲区,以便下次使用时它是空白的,它才会释放它以前使用的内存。
**listbuffer 是一个List<List<List<string>>>
只是让这更有意义......
listbuffer[行块][行#][列#]
有没有办法告诉列表释放list[i]
正在使用的内存?
谢谢!