(1)我写了一个关于此问题的问题,但我认为我没有正确说明问题,因此我将其删除。准确地说,在我的GUI应用程序中,我注意到当我想测量使用的方法所花费的运行时间时System.currentTimeMillis();
,与jar
通过终端或控制台运行文件的标准方式相比,该时间变得非常短且不切实际,Java Swing是否可以在这里产生一些影响?
(2)由于我想保留我的GUI并解决此问题,因此我了解了禁用JIT的可能性,如何在程序中将其编写为一段代码,因此当它运行时,JIT在运行时会被禁用仅我的应用程序。
谢谢你。
使用该-Xint
选项运行程序,该选项“以仅解释模式运行应用程序。禁用对本机代码的编译,并且所有字节码均由解释器执行。即时(JIT)编译器不提供性能优势。在这种模式下。”
作为具体的例子,该AnimationTest
显示器的平均时间中花费paintComponent()
使用System.nanoTime()
。使用该-Xint
选项,时间保持相当恒定:
java -Xint -cp build/classes overflow.AnimationTest
如果没有该选项,即使用本机代码进行编译,则很容易看到绘制时间的长期减少,有时减少了一个数量级:
java -cp build/classes overflow.AnimationTest
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句