我正在使用 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/