【发布时间】:2013-06-19 04:48:40
【问题描述】:
另一个概念问题.. 我正在与 java 堆空间异常作斗争。 我的问题是,我必须渲染/显示小但很多的图像。 我超过了最大 ram。 (编辑 vm 选项没有帮助)但是我将所有图像存储在一个列表中。 我想如果我一张一张渲染图像并将其临时存储在本地硬盘上,它是否可能需要更少的内存。 如果显示在屏幕上,图像是否仍然全部在内存中?
代码中的更改会很重要,所以我想在此之前问一下..
【问题讨论】:
-
只加载那些活跃在屏幕上的图像,保留图像来源的列表,并在需要时加载您需要的图像。确保你完全阻止那些你没有阻止的图像,以便 GC 可以释放内存
-
好的,所以我将更改程序以将图像存储在磁盘上.. thx。 .滚动窗格可以完成这项工作吗? (只加载显示的内容)? jscrollpane api 没有直接回答这个问题.. 但是“可滚动客户端”的措辞让我期待它这样做..
-
是和不是。加载图像后,它们主要保留在内存中。没有简单的方法可以知道您的组件何时消失
-
我发现这里看起来很有用。:stackoverflow.com/questions/13627783/… 我明天会检查它。谢谢