Saya mengerjakan aplikasi dan satu pendekatan desain melibatkan penggunaan instanceof
operator yang sangat berat . Meskipun saya tahu bahwa desain OO umumnya mencoba untuk tidak menggunakan instanceof
, itu adalah cerita yang berbeda dan pertanyaan ini murni terkait dengan kinerja. Saya bertanya-tanya apakah ada dampak kinerja? Apakah secepat ==
?
Sebagai contoh, saya memiliki kelas dasar dengan 10 subclass. Dalam satu fungsi yang mengambil kelas dasar, saya memeriksa apakah kelas tersebut adalah turunan dari subkelas dan menjalankan beberapa rutin.
Salah satu cara lain yang saya pikirkan untuk menyelesaikannya adalah dengan menggunakan primitif "type id" integer, dan menggunakan bitmask untuk mewakili kategori dari subclass, dan kemudian hanya melakukan sedikit perbandingan topeng dari subclass "type id" ke topeng konstan mewakili kategori.
Apakah instanceof
entah bagaimana dioptimalkan oleh JVM menjadi lebih cepat dari itu? Saya ingin tetap menggunakan Java tetapi kinerja aplikasi sangat penting. Akan sangat keren jika seseorang yang telah menyusuri jalan ini sebelumnya dapat menawarkan beberapa saran. Apakah saya terlalu banyak melakukan nitpicking atau berfokus pada hal yang salah untuk dioptimalkan?