【发布时间】:2011-03-01 16:37:49
【问题描述】:
在我的应用程序中,我需要将大文件(大约 250 MB)加载到内存中,我正在以一种懒惰的方式执行此操作 - 当用户要求查看文件时 - 我正在加载它。之后,每次用户尝试访问该文件时,我都可以立即显示它,因为它已经位于内存中。 所以,问题在于垃圾收集...... 我正在加载的每个文件,我正在通过 WeakReference 加载, 但 : 我测试了几次,我能够将大约 3GB 加载到内存中(比应用程序变得不可用),但没有发生 GC。我无法调用 GC.Collect(2),因为我无法确定调用它的时间,所以如何告诉 GC 在好时机收集内存(弱引用)(该死,3GB 太多了……看来GC只是不做他的工作) 热点解决了吗?我真的需要延迟加载,但是当进程使用超过 1GB 的内存时,我需要收集内存,或者类似的东西
【问题讨论】:
标签: c# garbage-collection weak-references large-object-heap