ujimushiの日記: Julia 1.9+PrecompileTools.jlでBlink.jl+Interact.jlの初回起動を高速化する
仕事関係で数学的な理論式とそのパラメータの関係の可視化を素早く行える方法を探していて,Julia言語のBlink.jl+Interact.jlが良さそうと感じていた。
お手軽にインタラクティブなグラフを表示するデモができて,パラメータを指定する部品が一番揃っている感じだった。
ただ,最初の起動時間が長く,その点をどうするかが課題だった。
最近Juliaのバージョン1.9が出て,その特徴を説明したblogの内容からPrecompileTools.jlモジュールでその対策ができそうだった。
詳細はujimushiのgistに書いたが,モジュール内にPrecompileToolsを取り込んで,速くしたい処理を「@compile_workload」で囲むとprecompile時に囲んだところの処理のネイティブキャッシュを作成してくれる。
...
using PrecompileTools
@compile_workload begin
処理を速くしたい関数の使用例
...
end
gistで紹介した例だと約12秒→1秒なので,かなり改善した。
ただしこの例でprecompile時に画面が表示されてしまうのは変なのだが…
また,既存のプロジェクトの起動用ラッパーで高速化も可能。
次のような感じのモジュールを作って StartModule.start()とかすればよい。
module StartModule
using MyModule
using PrecompileTools
@compile_workload begin
MyModule.速くしたい関数(パラメータ)
...
end
function start()
MyModule.main()
end
end # StartModule
Julia 1.9+PrecompileTools.jlでBlink.jl+Interact.jlの初回起動を高速化する More ログイン