Kesan Prestasi Menggunakan instanceof dalam Java
Walaupun pengkritiknya dalam reka bentuk berorientasikan objek, pengendali instanceof kekal sebagai pilihan reka bentuk biasa dalam aplikasi . Walaupun prestasinya masih menjadi kebimbangan, kesannya sering diperdebatkan. Untuk menjelaskan topik ini, analisis penanda aras menyeluruh telah dijalankan.
Pelaksanaan Penanda Aras
Program penanda aras telah dibuat untuk menilai prestasi empat pelaksanaan berbeza:
Keputusan
Selepas 10,000 lelaran dengan 10 garpu, purata masa berikut adalah direkodkan:
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% |
Analisis
Kesimpulan
Dalam Java 1.8, pengendali instanceof ialah pilihan terpantas untuk semakan jenis. Ia lebih pantas sedikit daripada getClass() dan jauh lebih pantas daripada ID jenis tersuai atau pendekatan berorientasikan objek. Memandangkan kesan prestasinya yang minimum, instanceof kekal sebagai pilihan yang berdaya maju untuk semakan jenis dalam senario kritikal prestasi.
Atas ialah kandungan terperinci Adakah instanceof Benar-benar Lambat? Penanda Aras Prestasi di Java 1.8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!