如何加速JVM?

时间:2011-07-22 14:59:39

标签: java linux

我正在编写一些在Vortex86芯片上同时在Linux和Windows XP Embedded上运行的java软件。该软件通常在Windows XP中加载2-3秒,但是当我尝试在Linux中加载它时需要大约10-12秒。我不认为它是代码优化问题,因为运行Hello World程序需要1秒钟。

任何建议都将不胜感激。预加载java是一个选项,因为机器只运行这些程序,但我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:2)

马特指出,有很多因素在起作用。如果您的描述不完整,则无法提出有针对性的建议。话虽如此,这里有几件事要尝试:

  • 使用-verbose:gc配置内存利用率并增加分配给程序的内存(java -Xms512m -Xmx512m)
  • 检查两台计算机上的Java版本是否大致相同
  • 检查两台计算机上的硬件是否大致相同
  • 在测量性能时检查两台机器是否安静
  • 确保两者都以32位或64位运行,并且您不会报告混合配置文件的结果。
  • 检查您的程序可能在一个平台上使用的启动脚本,但另一个平台可能缺少(例如run.properties)

答案 1 :(得分:2)

如果您之前运行过Java,则共享文件和rt.jar将在内存中。即为您预装。我只能想象你的Linux机器内存非常低,每次都必须从磁盘加载所有东西。

在我的Linux机上

$ time java -cp . HelloWorld
Hello World.

real     0m0.043s
user     0m0.030s
sys      0m0.010s

启动和运行的总时间为0.043秒。你能和你的hello世界做一个类似的测试吗?