Странно, был подобный вопрос в группе пользователей scala :
Рекс Керр ответил в то время (май):
Я никогда не встречал случая, чтобы производственный код был значительно ускорен
используя -optimise
, по крайней мере, при использовании Sun JVM. Я допускаю, что в некоторых
В некоторых случаях это может произойти, но, похоже, к подобным
JVM уже делает. Возможно, если существуют ограничения по глубине оптимизации,
использование -optimise удалит несколько слоев, а затем позволит JVM получить
еще несколько. Но я в основном даже не пытаюсь это проверить, учитывая, как
во многих случаях (десятки) я пробовал, когда время выполнения не изменилось
измеримо.
Я ожидаю, что это повлияет на более консервативные виртуальные машины (например,
JRockit) или менее изощренный (например, Dalvik).
Исмаэль Джума добавлено:
Дистрибутив scala фактически скомпилирован с -optimise, но на самом деле
он не включен, если аргумент не передан в scalac.
Разве он недостаточно зрелый или может привести к ошибкам, измененной семантике и т. Д.?
Насколько я понимаю, команда решила быть консервативной и
это только для распространения Scala в качестве начального шага (в Scala
2.8.0). Может быть, это хорошая идея рассмотреть вопрос о расширении этого в следующем
основной выпуск.
Чтобы узнать о влиянии '-optimise
' (среди других факторов) в Scala2.9, см. ветку на языке скала под названием "Scala2.9 slower?" .
Я немного обеспокоен. Увидев, что -optimize
действительно оптимизирует «для понимания» на 2.9.0, я затем провел тестирование кода и обнаружил, что он примерно в 2,5 раза медленнее, чем 2.8.1.
Результаты оставляют ... смешанное чувство.