Оптимизация сжатия 100 *1000* 1000 * 1000 => 100000000000, показанная в вашем примере, НЕ является оптимизацией во время выполнения. Это происходит во время компиляции. (и я бы даже не назвал это оптимизацией)
Я не знаю каких-либо оптимизаций, происходящих во время выполнения, если не считать подсистемы виртуальных машин, которые имеют JIT (только во время) компиляцию.
Оптимизации, которые происходят во время компиляции, весьма разнообразны и зачастую не просты для объяснения. Но они могут включать в себя встроенные небольшие функции, реорганизацию инструкций для локальности кэша, реорганизацию инструкций для лучшей конвейеризации или гиперпоточности и многие, многие другие методы.
РЕДАКТИРОВАТЬ : Некоторые F * ER отредактировали мой пост ... и затем проголосовали против него. В моем первоначальном посте четко указывалось, что коллапсирующее умножение происходит в COMPILE TIME, а не в RUN TIME, как предположил автор. Затем я упомянул, что на самом деле свертывание констант не является большой оптимизацией. Препроцессор даже делает это.
Маси: если ты хочешь ответить на вопрос, то ответь на вопрос. НЕ редактируйте ответы других людей, чтобы вставить слова, которые они никогда не писали.