LINUX.ORG.RU

История изменений

Исправление xaizek, (текущая версия) :

Я потом отредактировал:

range-for в теории может быть быстрее как раз потому что для компилятора это -1 оптимизация для приближения к идеалу для случая, когда индекс не нужен.

С парой указателей компилятору должно быть проще работать чем с вызовом метода, this, полями объекта, индексированием. В моём примере видно, что компилятор не стал выкидывать индекс, потому что объект который пришёл в функцию f2() может скрытно измениться в функции g() и указатель на начало массива перечитывается на каждой итерации из памяти.

Здесь я бы сказал, что код медленнее.

Исходная версия xaizek, :

Я потом отредактировал:

range-for в теории может быть быстрее как раз потому что для компилятора это -1 оптимизация для приближения к идеалу для случая, когда индекс не нужен.

С парой указателей компилятору должно быть проще работать чем с вызовом метода, this, полями объекта, индексированием. В моём примере видно, что alias analysis видимо не дал возможность выкинуть индекс, потому что объект который пришёл в функцию f2() может скрытно измениться в функции g() и указатель на начало массива перечитывается на каждой итерации из памяти.

Здесь я бы сказал, что код медленнее.