如何加速Java应用程序?

时间:2012-02-26 22:39:01

标签: java

我需要将Java用于桌面应用程序。我听说有很多工具可以原生地编译java,这是真的吗?这些工具是否将java程序编译成机器代码?

感谢你!

4 个答案:

答案 0 :(得分:6)

由于(Sun / Oracle)Java VM具有良好的JIT(即时)编译器,因此您无需自己将Java程序编译为机器代码。编译器会在必要时动态执行此操作。

所以:像其他程序一样加速Java程序:

  • 降低算法复杂度
  • 利用并行性
  • 适时计算
  • 查找并删除瓶颈
  • ...

由于Java是一种垃圾收集语言,因此提高速度有一个重点:减少分配!减少分配将至少帮助您两次:分配本身没有完成,垃圾收集器将不得不做更少的工作(这将节省时间)。

答案 1 :(得分:2)

我同意其他人认为编译机器代码没有多大意义:请注意C free / malloc的成本与Java new / garbage collection相同或更高。

NetBeans IDE附带内置的Profiler;因此,您可以在该IDE中分析您的应用程序以找到瓶颈。

答案 2 :(得分:1)

您是在为应用编写代码还是其他人?

它看起来你正试图运行一个很慢的java应用程序。尝试在运行时增加内存。您可以更改指定这些参数的shell脚本: java -Xms64m -Xmx512m

答案 3 :(得分:0)

  

我需要将Java用于桌面应用程序。我听说有   许多本地编译java的工具,这是真的吗?做这些工具   将java程序编译成机器码?

此类程序确实存在,但在使用Java平台的一些更动态的功能时可能需要权衡,因为您可能会失去在运行时加载新类的能力。 JVM可能启动缓慢,但一旦开始运行就足够快。

那就是说,我在这里没有看到任何人提到的一个解决方案是用SWT替换用Swing编写的代码。 SWT工具包使用下面的本机代码。