забавляет изменение отношения к вопросу. раньше считалось что получать длину каждый раз - моветон, и идиома была получить её в переменную один раз и итерировать до неё. потом оптимизаторы стали прошаренными и научились это отрабатывать в некоторых ограниченных случаях, когда повезёт. лично я по-прежнему воспринимаю это в таком ключе. но, судя по разговору, сейчас это уже воспринимается как норма, от которой иногда может "произойти деопт". ну, может быть конечно оптимизаторы стали настолько лучше, но сомневаюсь если честно: в условиях когда язык изначально позволяет любой бардак, железная уверенность у оптимизатора возникает редко. в общем, любая подкапотная магия работает только тогда когда считает нужным, и контролировать её по внешним признакам - это пытаться заклинать духов машины, причём у каждой машины они свои. если на вашу задачу реально влияет скорость итерации массива, наверное вы выбрали неподходящий язык.