在谈到“长时间运行”的应用程序时,我听到很多关于JIT编译如何使代码运行得比预编译的更快。但是要完全优化您的应用程序需要多长时间?
为了感兴趣,我会告诉你一些例子。我有一些方法,我们称之为mySlowMethod()
。它执行一些矩阵计算,如旋转,乘法等,每秒几百次。我已经测量了每次通话的时间并得到了这些结果:
long time = System.nanoTime();
mySlowMethod();
System.out.println(System.nanoTime()-time);
//first call
1577187 (1.6 ms)
//next 2 seconds
~60000 (0.06 ms)
//later
less than 10000 (0.01 ms)
答案 0 :(得分:5)
JIT实际上以多个较小的步骤运行,以最大限度地降低对应用程序启动的性能影响。这些步骤包括:
多种模式。
增量编译。
总的来说,应用程序可能永远不会“完全优化”,但您永远不会知道这一点,因为您实际关注的部分会尽早进行优化。