SBT использует быстрый компилятор Scala (fsc)? - PullRequest
22 голосов
/ 02 сентября 2010

SBT использует fsc?

В целях тестирования я собираю программу из 500 строк на довольно медленной машине с Ubuntu (Atom N270). Три последовательных времени компиляции были 77, 66 и 66.

Затем я скомпилировал файл с fsc из командной строки. Теперь мои времена были 80-х, 25-х, 18-х годов. Лучше! Это означает, что sbt не с использованием fsc. Я прав? Если так, то почему он не использует это?

Я могу попробовать заставить sbt явно использовать fsc для компиляции, хотя я не уверен, что выясню конфигурацию. Кто-нибудь делал это?

Ответы [ 4 ]

21 голосов
/ 18 октября 2012

Это обсуждение заставило меня понять, что я использовал sbt неправильный путь.

Вместо (из командной строки):

$ sbt compile
$ sbt test

.. нужно сохранить sbt работает и обрабатывает его как командную строку.

$ sbt
> compile
  ...
> test

Имеет историю команд и даже возможность вернуться в командную строку ОС.Я написал этот «ответ» для таких, как я (исходя из образа мышления Makefile), которые могут не осознавать, что мы принимаем таблетку неправильно.:)

(Это все еще медленно, хотя.)

12 голосов
/ 02 сентября 2010

SBT не может воспользоваться быстрым компилятором Scala, когда вы запускаете его в интерактивном режиме (с использованием или без использования режима непрерывной сборки), потому что классы компилятора Scala загружаются и получают «прогрев» и JIT-ed, что является полной величиной fsc преимущество.

2 голосов
/ 09 августа 2011

По крайней мере для SBT 0.7.x авторы объясняют, что он не такой быстрый, как fsc, который кэширует экземпляр компилятора (включая загруженные библиотеки), а не только классы компилятора JITted:

http://code.google.com/p/simple-build-tool/wiki/ChangeDetectionAndTesting

Мой опыт также подтверждает, что fsc быстрее для полных компиляций, но не выбирает автоматически, что перекомпилировать.

Для SBT 0.10 я не могу найти никаких документов по этому вопросу.

0 голосов
/ 17 декабря 2014

Тебе больше не нужно это делать. У Sbt теперь свой путь:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...