Я изучаю использование Джулии в качестве общего научного вычислительного языка (в отличие от python), но время запуска довольно вяло.
Есть ли способ ускорить это?
$ time python -c 'print "Hello"'
Hello
real 0m0.030s
user 0m0.018s
sys 0m0.010s
$ time julia -e 'println("Hello")'
Hello
real 0m4.614s
user 0m4.644s
sys 0m0.116s
ДОБАВЛЕНИЕ: Здесь приведена цитата одного из авторов Джулии в прошлом году. Были ли трудности с этой стратегией?
Большая часть Джулии написана сама по себе, затем анализируется, вводится тип и jitted, поэтому загрузка всей системы с нуля требует некоторых 15-20 секунд. Чтобы сделать это быстрее, у нас есть поэтапная система, где мы проанализировать, ввести тип и затем кешировать сериализованную версию type-inferred AST в файле sys.ji. Затем этот файл загружается и используется для запуска системы при запуске julia. Нет кода или машины LLVM код кэшируется в sys.ji, однако, все, что нужно LLVM jitting каждый раз, когда начинается julia, что, следовательно, занимает около 2 секунд.
Эта 2-секундная задержка запуска довольно раздражает, и у нас есть план для фиксируя его. Основной план - собрать всю Юлию программы для двоичных файлов: либо исполняемые файлы, которые можно запустить, либо .so/.dylib разделяемые библиотеки, которые можно вызывать из других программ, как если бы они были просто разделены библиотеками C. Время запуска для двоичного файла будет как и любая другая программа C, поэтому 2-секундная задержка запуска исчезнет.