我需要尝试改善相对较大的无头Java 应用程序调整 VM/启动器参数的启动时间(正在单独努力实现调整实际代码的相同目标)。
选择的 VM 是标准的 OpenJDK Java-8。
openjdk version "1.8.0_102-internal"
OpenJDK Runtime Environment (build 1.8.0_102-internal-b14, profile compact3)
OpenJDK VM (build 25.102-b14, interpreted mode)
主机是运行 Linux 的嵌入式 ARM7(32 位)。
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
如前所述,目标是缩短启动时间;运行时性能是可以接受的。
有人可以建议对 VM 本身进行调整以显着缩短交货时间。
注意:我知道“-client”选项可能带来的好处,我会尽快试用它;有可能的缺点吗?任何其他?
澄清:
“有趣的数字”是从目标上电到应用程序准备好接受命令所需的时间。
它由三部分组成:
- 系统启动时间:超出了这个问题的范围。唯一的影响是 Java 很早就启动了,所以其他一些后台进程可能正在窃取计算能力;也许某些优先级扩展可能会有所帮助,但会牺牲其他一些过程。
- Java VM 启动:这是本题的重点。
- 应用程序启动时间:这应该在优化中计算,但应用程序优化本身(例如:“未使用”类的延迟加载)不是这个问题的一部分。但是应该记住,因为任何缩短 VM 启动的解决方案时间,但延长应用程序启动时间并没有多大帮助。