Ответ 1
Как быстро компиляция в вашем случае?
скорость скаляса ограничена двумя факторами:
-
Это довольно большая программа, которая работает на JVM. Таким образом, время запуска не очень велико, потому что нужно (1) запустить в него сканер JVM (2) (3) JIT компилирует большую часть его, чтобы получить скорость. Время запуска 2-4 секунды типично, и первые пары скачков не очень быстры. Если ваша установка правильная, это будет уменьшено, если скаляр будет оставаться резидентным и "теплым" в запущенной JVM. sbt делает это, как и все IDE. Я рекомендую использовать один из этих параметров, иначе, если вы должны скомпилировать из командной строки, используйте "fsc", который также сохраняет резидентный компилятор. (Например, люди обычно не жалуются на скорость REPL, но REPL использует тот же самый скаляр, что и все остальные. Разница только в том, что компилятор поддерживается резидентным).
-
Даже полностью разогретый скалак должен бороться с программами, которые иногда требуют сложного вывода типа. Таким образом, это не так быстро, как компиляторы для языков с очень простыми типами систем, таких как Go. Я вижу на своем 3-летнем Macbook Pro скорость компиляции 500-800 строк в секунду. Это не удаляет мировой рекорд, но этого достаточно для инкрементной компиляции, что и делают IDE и sbt. Мой текущий проект составляет около 50 тыс. Строк кода, но я в принципе никогда не жду компилятора в своей среде IDE (Scala IDE для Eclipse), потому что инкрементная компиляция выполняется достаточно быстро. Некоторые люди видят скорость компиляции, которая ниже. Это обычно потому, что они используют конструкции (часто импортируемые из библиотеки), которые очень дороги для компиляции, такие как сложные неявные иерархии параметров.