我的应用程序有一个生成图像(jpg)的功能,它使用了大量的堆空间(主机服务器上允许更多)。他们是否可以使用更少的堆内存。我的意思是,就像我们的计算机在RAM已满时使用虚拟内存一样。他们以任何方式将java用作外部内存作为虚拟堆空间吗?
答案 0 :(得分:4)
从技术上讲,没有。这取决于操作系统(查看Michael Wiles的回答)。
一般来说,是的:一旦你生成一个JPG并且它不再立即,就把它写入磁盘并销毁代表它的对象(保存它的数据)。这个速度较慢,但使用的内存较少。
答案 1 :(得分:1)
只需使用-Xmx4g或其他东西运行java应用程序。这将允许java vm使用4演出的ram,无论系统有多少ram。当Java VM请求的内存多于RAM可用时,主机操作系统将提供内存作为虚拟内存。