Java での instanceof の使用によるパフォーマンスへの影響
オブジェクト指向設計における批判にもかかわらず、instanceof 演算子は依然としてアプリケーションにおける一般的な設計選択肢です。 。そのパフォーマンスには懸念が残りますが、その影響についてはしばしば議論されます。このトピックを明らかにするために、徹底的なベンチマーク分析が実施されました。
ベンチマーク実装
次の 4 つの異なる実装のパフォーマンスを評価するベンチマーク プログラムが作成されました。
結果
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 は、パフォーマンスが重要なシナリオでの型チェックの実行可能な選択肢です。
以上がインスタンスオブは本当に遅いですか? Java 1.8 のパフォーマンス ベンチマークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。