我正在探索使用朱莉娅作为通用科学计算语言(而不是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
附录:Here是从去年朱莉娅作者之一的报价。这个策略有没有困难?
大多数朱莉娅写入本身,然后解析,类型推断和 即时编译,因此从头自举整个系统需要一些 15-20秒。为了加快速度,我们有一个分阶段系统,我们在这个系统中解析,类型推断,然后在文件sys.ji中缓存一个序列化版本的 类型推断的AST。然后加载该文件,并在运行茱莉亚时使用该文件运行系统。没有LLVM代码或机器 代码被高速缓存在sys.ji中,但是,所有LLVM jitting仍然需要 在每次启动julia时完成,因此需要大约2 秒。
这2秒启动延迟是相当恼人的,我们有一个 修复它的计划。基本计划是能够将整个Julia 程序编译为二进制文件:可以运行的可执行文件或可以从其他程序调用的.so/.dylib 共享库,就好像它们只是共享C库一样。与任何其他C程序一样,二进制文件的启动时间将为 ,因此2秒启动延迟将消失。
现在Julialang存储库中有一个分支可以检出。 https://github.com/JuliaLang/julia/pull/4898。可能还有一些问题仍然存在,所以请自行承担风险。它可能会包含在即将发布的0.3版本中。 – ivarne