هل العامل < أسرع من <=؟ مقارنة الأداء في 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;
}