在技术上是否可以创建 Java 虚拟机的映像文件并使用它来更快地启动 Java 应用程序
Is it technically possible to create an image file of the Java Virtual Machine and use that for faster Java Application startup?
我想让我的应用程序启动时间大大加快。
我相信,如果我可以将应用程序的整个状态存储在运行 java 虚拟机的进程的内存空间上,那么我还应该能够创建一个新的 java 进程并将其内存内容替换为保存在图像文件中的状态。
我的理论是,如果我这样做,我可以更快地启动我的应用程序几秒钟,它将与我读取文件并将其放入 jvm 的正确内存区一样快。
您可以使用序列化来编写应用程序的状态(但是要注意对象图中的循环),然后在启动时对其进行反序列化,但这与创建 JVM 进程的映像并不完全相同。您仍然需要加载类并实例化一些基本的基础结构来引导应用程序,并且您将不会处于相同的内存和 JIT 状态。JVM从你那里抽象出很多东西,所以你无法访问"正确的内存区域"。
它是否会对应用程序的启动时间产生积极影响实际上取决于最初从何处加载状态以及构建成本
相关文章:
- Java应用程序的JNI-c++变量值
- QProcess不启动java应用程序
- 使用C 单元测试框架集成测试Java应用程序
- 如何分离以C++执行的 Java 应用程序的 stdin/stout/stderr 流
- 在Android Java应用程序中使用OpenCV Mat.OpenCV Mat出现NoClassDefFound错误
- 在技术上是否可以创建 Java 虚拟机的映像文件并使用它来更快地启动 Java 应用程序
- 是否可以在DOS 6.22中运行java应用程序
- HOWTO:C 应用程序作为Web服务提供商和Java应用程序作为Web服务客户端
- Java应用程序中的C 三角剖分库
- 使用自定义图形层运行专有[Java]应用程序
- CORBA C++/Java应用程序中服务器端的分段故障(核心转储)
- windows中java应用程序和C++应用程序之间的同步
- 写入 Windows 下 Java 应用程序中生成的控制台应用程序C++
- C++ 和 Java 应用程序之间的 NamedPipe interprocess
- 将 Java 应用程序移植到 C++ (qt)
- 如何调试 Java 应用程序的 C++ dll
- Java应用程序与C++应用程序之间的通信
- 安卓Java应用程序,仅支持C++头库
- 从windows应用程序获取正在运行的java应用程序的进程id
- 如何从c++应用程序启动java应用程序,传递参数并等待java应用程序的结果