"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > `for` مقابل "foreach" حلقات في .NET: أيها أسرع؟

`for` مقابل "foreach" حلقات في .NET: أيها أسرع؟

نشرت في 2025-01-30
تصفح:840

in in foreach مقارنة الأداء لمقارنة الأداء: أيها أسرع؟

`For` vs. `Foreach` Loops in .NET: Which is Faster?
في C# ولغات .NET الأخرى ، عند اختيار المجموعة التكرارية للهيكل الدائري ، غالبًا ما يشارك في أداء نوع الدورة أعلى. على الرغم من أنه يعتبر عمومًا

لـ

، إلا أن الدورة foreach سريعة ، ولكن الأداء الفعلي قد يختلف من نوع المجموعة والمشهد المحدد.

وفقًا للاختبار التجريبي الذي أجرته باتريك سموتشيا ، مقارنة الأداء التالية:

on

on

قائمة

في مجموعة القوائم العامة ،
    لـ
  • أبطأ قليلاً من ] الفرق في الأداء حوالي 2 مرات. على الصفيف لـ في الصفيف: في المصفوفات العامة وغير الجنية ، يكون أداء لـ أعلى بكثير من ذلك 5 مرات أسرع
  • عامل يؤثر على الأداء يمكن أن يعزى الاختلافات بين الأداء بين اختلافات الأداء بين لـ و foreach إلى العوامل التالية: ]
  • التكرار النفقات العامة:
  • foreach تحتوي الدورة على النفقات العامة الإضافية المتعلقة بعملية التعداد ، والتي ستؤثر على وقت التنفيذ. التحسين: الصفيف في تحسين برنامج التحويل البرمجي:
  • قد يكون التحويل البرمجي أكثر فعالية بشكل أكثر فعالية من
foreach

Cycle لتحسين الأداء.

ختاماً على الرغم من أن عادة ما يتم توفير أداء أفضل عندما يتكرر في .NET ، قد يعتمد فرق السرعة الفعلي على أنواع ومشاهد التجميع المحددة. بالنسبة للتطبيقات الحساسة للأداء (مهم جدًا لكل ميلي ثانية) ، يوصى بإجراء اختبار قياسي لأنواع مختلفة من الدورات وتحديد دورة من سرعة التنفيذ المثلى.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3