‘java’和’libjvm.so’(Linux)或’jvm.dll’(Windows)之间的区别?
通过普通java命令启动应用程序有什么区别,而不是通过Linux中的libjvm.so或Windows中的jvm.dll直接调用JVM?
最近我在一个论坛上看到,使用dll或.so文件启动eclipse会提供更好的性能。 我想知道这是怎么发生的。
谢谢。
通常,如果人们想要围绕Java核心包装他们自己的function,那么人们就会构建jvm.dll,有时候很难从Java看起来像“本机”的东西。 一个很好的例子就是Eclipse,他们希望在启动之前弹出启动画面并执行其他操作。 对于其他产品,Java只是其工作量的一小部分(例如:需要在某些时候与Java桥接的大型C ++应用程序)。
从绩效的角度来看,这是无关紧要的。 这就是你想要像Eclipse这样的“适应和完成”的方式。
该链接讨论了Eclipse的启动; 这可能更快,因为通过使用-vm
参数指定JRE,Eclipse可执行文件不必搜索系统以启动适当的JRE(这将导致磁盘I / O并可能涉及检测JRE的版本)。 你不是在加速Java,你正在加速原生发射器 。