【问题标题】:Java virtual heap spaceJava 虚拟堆空间
【发布时间】:2012-08-10 11:16:01
【问题描述】:

我的应用程序具有生成图像(jpg)的功能,它使用大量堆空间(主机服务器上允许的更多空间)。他们有什么办法可以让它使用更少的堆内存。我的意思是,就像我们的计算机在 RAM 已满时使用虚拟内存一样。他们有没有办法让java使用外部内存作为虚拟堆空间?

【问题讨论】:

标签: java memory heap-memory virtual-memory


【解决方案1】:

从技术上讲,没有。这取决于操作系统(查看 Michael Wiles 的回答)。

从广义上讲,是的:一旦您生成 JPG 并且它不再立即使用,请将其写入磁盘并销毁代表它的对象(保存其数据)。这会更慢,但会使用更少的 RAM。

【讨论】:

  • 但是仅图像生成就需要很多内存....我已经尝试过您的建议..
  • 那么必须是 HUGE JPG,否则你做错了什么......无论如何,同样的想法仍然适用:分部分生成图像,并将每个部分写入磁盘而不是将其全部存储在 RAM 中。完成后,组装零件。
【解决方案2】:

只需使用 -Xmx4g 或其他东西运行 java 应用程序。这将允许 java vm 使用 4 gigs 的 ram,而不管系统有多少 ram。当 java VM 请求的内存超过 RAM 可用时,主机操作系统将提供内存作为虚拟内存。

【讨论】:

  • 我不是说......我想虚拟化java堆空间......我只能使用64MB的堆......不管有多少可用的RAM。
猜你喜欢
  • 1970-01-01
  • 2021-09-09
  • 1970-01-01
  • 2023-03-17
  • 2021-03-18
  • 2012-08-02
  • 1970-01-01
  • 2011-10-27
  • 2020-05-21
相关资源
最近更新 更多