Blok Cuba/Tangkap Kosong: Analisis Prestasi
Artikel ini menyiasat implikasi prestasi menggunakan blok try/catch
kosong dalam kod C# di mana pengecualian tidak mungkin. Ujian penanda aras telah dijalankan untuk membandingkan kelajuan pelaksanaan kod dengan dan tanpa blok ini.
Coretan kod C# berikut menggambarkan penanda aras:
<code class="language-csharp">static public void Main(string[] args) { Stopwatch w = new Stopwatch(); double d = 0; w.Start(); for (int i = 0; i < 10000000; i++) { d += i; } w.Stop(); Console.WriteLine("Time without try/catch: " + w.ElapsedMilliseconds); w.Reset(); w.Start(); for (int i = 0; i < 10000000; i++) { try { d += i; } catch (Exception) { } } w.Stop(); Console.WriteLine("Time with try/catch: " + w.ElapsedMilliseconds); }</code>
Ujian kami menunjukkan perbezaan prestasi yang boleh diukur, dengan blok try/catch
kosong menambah kira-kira 33 milisaat pada masa pelaksanaan.
Menambah operasi selanjutnya di dalam blok try/catch
meningkatkan overhed ini dengan ketara. Ini menekankan kepentingan menggunakan try/catch
blok dengan bijak, menyimpannya untuk situasi di mana pengendalian pengecualian benar-benar diperlukan.
Kesimpulannya, walaupun kos prestasi blok try/catch
kosong agak kecil, ia masih menjadi pertimbangan untuk kod kritikal prestasi. Untuk prestasi optimum, gunakan try/catch
hanya apabila mengendalikan pengecualian yang benar-benar tidak dapat diramalkan atau tidak dapat dielakkan.
Atas ialah kandungan terperinci Adakah Blok Cuba/Tangkap Kosong Memberi Impak Ketara kepada Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!