我在Raspberry Pi上安装了Java,启动速度非常慢。为什么会这样?
# time java
..
real 0m1.356s
user 0m1.190s
sys 0m0.110s
编辑:我正在与Hello World c ++二进制文件进行比较,花了0m0.001s。为什么c ++二进制文件要快得多?
答案 0 :(得分:4)
Raspberry Pi的处理器速度比计算机慢得多,因此其上的所有内容都会比您通常看到的速度慢得多。
编辑*
我认为C ++会更快,因为Java为了运行而产生的初始开销。您需要考虑JVM启动所需的时间以及在Java程序未编译时已编译C ++程序的事实。
然而,重要的是要注意,C ++并不总是比Java快。 JVM使用的JIT(即时)编译器有助于在代码运行时优化代码。
答案 1 :(得分:3)
启动速度有两个限制因素:
我第一次启动Java(一个tomcat web服务器)时,需要大约5分钟才能启动。在我的电脑上,它需要〜15秒
<强>更新强> 更新的问题给出了答案。 您将本机编译的hello世界与完整虚拟机的启动进行比较。
我认为,对于(第一个)启动Java应用程序,您将始终获得令人难以置信的糟糕启动性能。
第二个java进程可能使用共享内存和第一个,因此第二个应用程序可能会更快启动。
*)我认为它较慢,我没有关于它的基准
答案 2 :(得分:-1)
实际上我并不想添加答案,因为现有的答案完全可以解释你的苹果和梨的比较。
但是,我认为JVM实现具有significant impact on performance的事实需要更多的可见性。
我自己来到这里,因为我的Spring应用程序需要100秒才能启动。从OpenJDK-8切换到Oracle的Hotspot后,启动只用了15秒。适用于ARM的Hotsport包含在Raspbian中:
apt-get install oracle-java8-jdk