在 Java 中使用 instanceof 的性能影响
尽管在面向对象设计中存在一些批评者,instanceof 运算符仍然是应用程序中常见的设计选择。虽然其性能仍然令人担忧,但其影响却经常引起争议。为了阐明这个主题,我们进行了彻底的基准分析。
基准实现
创建了一个基准程序来评估四种不同实现的性能:
结果
经过 10 次分叉 10,000 次迭代后,以下平均时间为记录:
Operation | Runtime in nanoseconds per operation | Relative to instanceof |
---|---|---|
INSTANCEOF | 39,598 | 100.00% |
GETCLASS | 39,687 | 100.22% |
TYPE | 46,295 | 116.91% |
OO | 48,078 | 121.42% |
分析
结论
在 Java 1.8 中,instanceof 运算符是类型检查最快的选项。它比 getClass() 稍快,并且比自定义类型 ID 或面向对象的方法快得多。鉴于其对性能的影响最小,instanceof 仍然是性能关键场景中类型检查的可行选择。
以上是instanceof 真的很慢吗? Java 1.8 中的性能基准的详细内容。更多信息请关注PHP中文网其他相关文章!