Это не имеет никакого значения, потому что вы делаете такое же количество сравнений. Вот лучший пример. Вместо:
for (int i=0; i<200; i++) {
doStuff();
}
запись:
for (int i=0; i<50; i++) {
doStuff();
doStuff();
doStuff();
doStuff();
}
Даже тогда это почти наверняка не будет иметь значения, но теперь вы делаете 50 сравнений вместо 200 (представьте, что сравнение более сложное).
Ручное развертывание петли в целом, однако, в значительной степени является артефактом истории. Это еще один из растущего списка вещей, которые хороший компилятор сделает для вас, когда это важно. Например, большинство людей не пишут x <<= 1
или x += x
вместо x *= 2
. Вы просто пишете x *= 2
, и компилятор оптимизирует его для вас в соответствии с тем, что лучше.
По сути, все меньше становится необходимости угадывать ваш компилятор.