Avatar ·

لماذا try-catch يسرع تنفيذ الكود الخاص بي في C#؟

مرحبًا بالجميع! أنا مطور C# مبتدئ وواجهت موقفًا غريبًا جدًا. لدي طريقة تقوم بعمليات رياضية على مصفوفة كبيرة من البيانات. لاحظت أنه إذا قمت بتغليف الحلقة الرئيسية في try-catch، فإن الكود ينفذ بشكل أسرع من دونه. الفرق حوالي 15-20% على 10 ملايين تكرار. إليك مثال مبسط: ```csharp // الإصدار البطيء (بدون try-catch) public void ProcessWithoutTryCatch(int[] data) { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } // الإصدار السريع (مع try-catch) public void ProcessWithTryCatch(int[] data) { try { for (int i = 0; i < data.Length; i++) { data[i] = data[i] * 2 + 1; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } ``` لقد اختبرت على .NET 6 و .NET 8، والنتيجة تتكرر باستمرار. مع العلم أن الاستثناءات لا تُلقى أبدًا — المصفوفة مضمونة ألا تخرج عن الحدود.