Avatar ·

هل العامل < أسرع من <=؟ مقارنة الأداء في C++

مرحباً بالجميع! أنا مطور C++ مبتدئ، ولدي سؤال حول أداء عوامل المقارنة. أكتب حلقة تقوم بالتكرار على مصفوفة من 10 ملايين عنصر، وأحتاج لتنفيذ إجراء ما طالما أن المؤشر أقل من أو يساوي قيمة معينة. أستخدم `for (int i = 0; i <= n; i++)`. لكن زميلي قال إنه من الأفضل استخدام `i < n + 1`، لأن العامل `<` يعمل أسرع من `<=`. يدّعي أنه على مستوى التجميع، يتم تنفيذ `<` في دورة معالج واحدة، بينما `<=` في دورتين، لأن المعالج يحتاج للتحقق من المساواة بشكل إضافي. جربت كلا الخيارين في الكود الخاص بي: ```cpp #include #include const int N = 10000000; void test_less_equal() { int sum = 0; for (int i = 0; i <= N; ++i) { sum += i; } std::cout << sum << std::endl; } void test_less() { int sum = 0; for (int i = 0; i < N + 1; ++i) { sum += i; } std::cout << sum << std::endl; }