Julia を (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
補遺:これは昨年の Julia の著者の 1 人からの引用です。この戦略に難しさはありましたか?
Julia の大部分はそれ自体で記述され、解析、型推論、jit されるため、システム全体をゼロからブートストラップするには 15 ~ 20 秒ほどかかります。高速化するために、ステージングされたシステムを使用して、解析し、型を推測し、型を推測した AST のシリアル化されたバージョンをファイル sys.ji にキャッシュします。このファイルは読み込まれ、julia を実行するときにシステムを実行するために使用されます。ただし、sys.ji には LLVM コードやマシン コードはキャッシュされないため、julia が起動するたびにすべての LLVM ジッティングを実行する必要があり、これには約 2 秒かかります。
この 2 秒の起動遅延は非常に厄介であり、修正する計画があります。基本的な計画は、Julia プログラム全体をバイナリにコンパイルできるようにすることです。つまり、実行可能な実行可能ファイルか、単純な共有 C ライブラリであるかのように他のプログラムから呼び出すことができる .so/.dylib 共有ライブラリのいずれかです。バイナリの起動時間は他の C プログラムと同じなので、2 秒の起動遅延はなくなります。