我有一个大应用程序,我试图优化它。为此,我通过在循环中运行它们数百万次并检查它们的处理时间来分析/基准测试它的小元素。
显然Hotspot的JIT正在起作用,我实际上可以看到它发生的时间。我喜欢它,我可以清楚地看到在“热身”期之后事情变得更快了。
然而,在达到最快执行速度并保持一段时间后,我可以看到速度会降低到不太令人印象深刻的速度,并保持在那里。
由于循环中执行的内容实际上并没有太大变化,所以我几乎看不出逃逸分析为什么会强制对代码进行“去优化”。
基本上,我感觉JIT正在获得最佳性能,然后停留在某些更慢的状态,认为这已经足够了。
是否有任何方法告诉它“还不够,我真的希望代码尽可能快地运行!”。我知道它可以做到,因为它已经做到了。只是我怎样才能强迫它这样做?
显然Hotspot的JIT正在起作用,我实际上可以看到它发生的时间。我喜欢它,我可以清楚地看到在“热身”期之后事情变得更快了。
然而,在达到最快执行速度并保持一段时间后,我可以看到速度会降低到不太令人印象深刻的速度,并保持在那里。
由于循环中执行的内容实际上并没有太大变化,所以我几乎看不出逃逸分析为什么会强制对代码进行“去优化”。
基本上,我感觉JIT正在获得最佳性能,然后停留在某些更慢的状态,认为这已经足够了。
是否有任何方法告诉它“还不够,我真的希望代码尽可能快地运行!”。我知道它可以做到,因为它已经做到了。只是我怎样才能强迫它这样做?