我正在编写图像处理应用程序。该算法是这样的: 首先,我从本地缓存或Internet加载了一组背景图像(每个图像约1.5 Mb)。 然后我下载多个前景图像(每个约1Mb),并在每个bg图像上按比例缩放它们。
在处理所有前景图像时,我会加载所有bg图像并将其保存在内存中(它们全部进入LOH)。
代码在多个线程中运行,目前,我仅使用字节数组来存储图像,并且仅在使用绘制方法时才将它们隐藏到位图中。
问题是创建了多个LOH段来存储大字节数组。它们占用大量内存,处理完成后,GC似乎没有收集到内存。当新请求到达时,另一组bg图像会加载到内存(LOH)中,依此类推。
我考虑过合并数组,但我认为它不适用于我的应用程序。
所以我的问题是如何管理大图像/字节数组并避免LOH碎片化?