我有一个活跃的问题是关于一些无望的内存问题,可能涉及LOH碎片以及其他未知因素。请点击此处查看。
我的问题是,什么是被接受的做法呢? 如果我的应用程序需要使用Visual C#完成,并且需要处理int [4000000]这样规模的大数组,如何避免垃圾回收器拒绝处理LOH的情况发生?
似乎我被迫将任何大数组设置为全局变量,并且从来不在它们周围使用“new”这个词。所以,我只能留下笨重的全局数组,带有“maxindex”变量,而不是通过函数传递的整洁大小的数组。
我一直被告知这是不好的做法。有什么替代方法吗?
是否有类似于System.GC.CollectLOH("Seriously")
的功能呢?
是否有可能将垃圾收集外包给System.GC之外的其他东西?
总之,处理大于85Kb的变量通常采用什么样的方法呢?