在查看我的RCP产品的possible JVM flags for optimizing launching startup time时,我发现了这些非常吸引人的名称-- -XX:UseFastEmptyMethods和-XX:UseFastAccessorMethods。
这些标志似乎在JDK-6上是可用的(缺省情况下是开的),而在JDK-7上缺省情况下是关的。此外,我了解到这种优化的权衡是它们不会增加方法调用计数器。
不使用调用计数器的影响是什么?这会影响垃圾收集吗?
发布于 2013-03-14 13:01:55
它用于正确获取方法的调用计数,以便VM可以更好地识别代码中的热点。
在here的讨论之后
如果您使用的是JDK6,则可能需要在目标
应用程序中包含以下两个VM标志:
-XX:-UseFastEmptyMethods -XX:-UseFastAccessorMethods
否则,空的方法和访问器方法将不会出现在列表中,因为“快速”版本不会递增这些方法的调用计数器。在JDK7中,这两个标志缺省为false,因此您不必费心显式地将它们设置为false。
另请参阅:
UseFastEmptyMethods/UseFastAccessorMethods considered harmful
https://stackoverflow.com/questions/15401391
复制相似问题