Rumah >pembangunan bahagian belakang >C++ >Adakah Cuba/Tangkap Blok Memberi Impak Ketara kepada Prestasi Apabila Tiada Pengecualian Dilemparkan?
Kesan sekatan cuba/tangkap pada prestasi tanpa pengecualian
Semasa menyemak kod dengan pekerja Microsoft, timbul persoalan mengenai potensi kesan prestasi daripada sejumlah besar blok cuba/tangkap. Pekerja itu mencadangkan mengehadkan blok cuba/tangkap kepada bahagian kod kritikal untuk mengelakkan penggunaan berlebihan.
Bagaimanakah cubaan/tangkap blok menjejaskan prestasi?
Walaupun blok cuba/tangkap menyediakan mekanisme pengendalian ralat yang kuat, ia mungkin memperkenalkan overhed prestasi jika dilaksanakan dengan kerap. Apabila pengecualian dilemparkan, blok cuba/tangkap diaktifkan dan JVM melakukan operasi tambahan untuk mengendalikan pengecualian dan menyambung semula keadaan pelaksanaan. Walau bagaimanapun, overhed ini hanya berlaku apabila pengecualian berlaku.
Ujian Kesan Prestasi
Untuk mengukur impak prestasi sebenar, penanda aras mudah telah dijalankan membandingkan masa pelaksanaan kod dengan dan tanpa blok cuba/tangkap. Penanda aras terdiri daripada berulang kali mengira sinus nombor dalam gelung. Ternyata blok cuba/tangkap menanggung overhed kira-kira 4 milisaat setiap sejuta lelaran.
Ujian tambahan yang mengandungi blok akhirnya
Ujian lanjut telah dijalankan untuk menilai kesan prestasi blok akhirnya, yang sering digunakan bersama dengan blok cuba/tangkap. Ternyata akhirnya blok juga dikenakan overhed, tetapi kurang sedikit daripada blok cuba/tangkap.
Kesimpulan
Ringkasnya, blok cuba/tangkap memang memperkenalkan sejumlah kecil overhed prestasi apabila tiada pengecualian dilemparkan. Walau bagaimanapun, untuk kebanyakan aplikasi praktikal, overhed ini agak tidak penting. Faktor utama yang perlu dipertimbangkan ialah kekerapan anomali yang dijangkakan. Jika pengecualian mungkin kerap berlaku, overhed tambahan mungkin menjadi lebih jelas.
Atas ialah kandungan terperinci Adakah Cuba/Tangkap Blok Memberi Impak Ketara kepada Prestasi Apabila Tiada Pengecualian Dilemparkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!