在Java 中使用instanceof 的效能影響
儘管在物件導向設計中存在一些批評者,instanceof 運算子仍然是應用程式中常見的設計選擇。雖然其性能仍然令人擔憂,但其影響卻經常引起爭議。為了闡明這個主題,我們進行了徹底的基準分析。
基準實作
建立了一個基準程式來評估四種不同實現的效能:
結果
經過10,000 次迭代和10 次分叉後,以下平均時間為記錄:
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中文網其他相關文章!