我正在尝试对在各种硬件和操作系统平台上运行的 JVM 进行一些基准测试。我创建了一个算法来练习 JVM 中我感兴趣的部分,并打算多次运行该算法以找到一个合适的平均值。
当我运行基准测试时,我发现第一次运行明显长于后续运行:
132ms
86ms
77ms
89ms
72ms
我怀疑类是延迟加载的,在第一次运行时会产生很大的开销。虽然我认为这确实是每个 JVM 独有的一项功能,但目前我对此并不感兴趣。
是否有标准的命令行选项或属性来急切地加载类?或者有人有其他理论吗?
最简单的做法是忽略第一次运行。 (如果这是一件有效的事情)
注意:如果您运行相同的代码 10,000 次,它将进一步编译代码并获得更好的结果,因此您可能需要忽略某些微基准测试的前 10K 结果。
有些 JVM 支持急切加载,但我认为 Sun 的 JVM 不支持。
JWrapper支持AOThttps://www.jwrapper.com/features https://www.jwrapper.com/features
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)