java - 有没有办法将巨大的 Java 变量保留在内存中以节省加载时间?

标签 java memory intellij-idea

我正在使用 IntelliJ,并且正在内存中加载大量文件。每次我运行应用程序时,都需要花费一些时间来加载它们。

有没有办法在运行之间将它们保留在内存中?

最佳答案

Is there a way to keep [the loaded files] in the memory between runs?

一句话,不。

您能做的最好的事情就是优化加载时间,或者重组您的应用程序,以便它不需要加载所有文件。

以下是建议:

  • 不要将所有数据加载到 JVM 内存中,而是将其存储在传统数据库或“nosql”数据库中(在磁盘上或内存中1)

  • 重构应用程序/分区问题,这样您就不需要同时需要内存中的所有内容。

  • 延迟加载文件。

  • 通过内存映射缓冲区访问文件中的信息,并避免将其全部转换为堆对象。

这些想法都不是直截了当的。如果没有关于您正在尝试做什么的更多信息,我无法预测哪一个(如果有的话)会有效......。

<小时/>

1 - 即在内存中的一个或多个单独的数据库服务器中。当然,当您启动/重新启动内存数据库服务器时,它们必须从磁盘加载数据,但您可以让许多应用程序 JVM 串行或同时与数据库通信。

关于java - 有没有办法将巨大的 Java 变量保留在内存中以节省加载时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423370/

相关文章:

java - 是否可以在 Eclipse 插件中的 session 之间保存自定义数据?

java - 如何使用 wireshark 解密服务以服务 SSL 流量?

c - 如何在内存块的任意位置插入一个值?

Maven 项目依赖项 "could not find artifact"

groovy - 为什么我的gradle脚本中出现 “connot be applied to ' Closure'”警告?

git - 我应该提交我的 `.idea/` 文件夹吗?

java - 如何使用 libgdx scene2d 创建多页屏幕?

java - 如何选择 ArrayList 中元素的索引并更改其属性之一?

c++ - C++ 中的内存黑客攻击/修改

德尔福 2007 IMAGE_FILE_LARGE_ADDRESS_AWARE