Теоретически, развертывание цикла сокращает время, затрачиваемое на увеличение и сравнение в цикле.Благодаря сокращению времени, затрачиваемого на цикл, достигается повышение производительности.
Количество полученного времени может быть не таким значительным для интерпретируемой программы, как скомпилированная программа.Для интерпретатора требуется время, необходимое для извлечения инструкции, интерпретации (построения кода) и выполнения кода для инструкции.Для того чтобы экономия времени при развертывании цикла была значительной, экономия времени должна быть больше, чем эти издержки.
В отличие от микропроцессоров, интерпретаторы не могут быть оптимизированы для скорости выполнения.Современные процессоры имеют высокоскоростные кэши, методы прогнозирования ветвлений и прогнозирования.Некоторые могут даже загружать новые инструкции в кеш, когда другие выполняются.Развертывание цикла использует преимущества этих функций, уменьшая количество переходов и делая выполнение более предсказуемым.Для скомпилированных языков это добавляет значительную экономию (для больших итераций).Эта экономия времени на производительность может не распространяться на большинство переводчиков, поскольку они могут не использовать эти функции.
Лучшее определение улучшения производительности - измерение.В моем случае, должно быть достаточно жалоб пользователей, чтобы оправдать график выполнения измерений.