‘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,你正在加速原生发射器 。