加快Julia的包装负荷

Rya*_*n F 6 julia julia-jump

我使用GLPKMathProgInterface和JuMP编写了一个程序来解决Julia中的线性程序.Julia代码由python程序调用,该程序通过多个命令行调用运行Juila代码的多个实例.虽然我对实际求解器的性能非常满意,但初始化非常慢.我想知道是否有办法加快这个速度.

例如,如果我只是将以下内容保存到文件中

@time using DataFrames, CSV, GLPKMathProgInterface, JuMP, ArgParse
Run Code Online (Sandbox Code Playgroud)

并运行它

mylabtop:~ me$ julia test.jl 
12.270137 seconds (6.54 M allocations: 364.537 MiB, 3.05% gc time)
Run Code Online (Sandbox Code Playgroud)

这看起来非常慢,是否有一些很好的方法来加速使用模块,比如我可以做一次的预编译步骤?

crs*_*nbr 7

由于你还没有得到任何答案,让我给你一般的第一顺序答案 - 虽然我希望更有资格的人能更详细地回答你的问题(如果我错了,请纠正我).

1)在撰写本文时,在Julia中加载包有时会相当慢.它已被多次讨论过,您可以期待未来的改进.AFAIK将在1.0版本发布后的早期1.x版本中发生.看看这个帖子.

2)由于您通常只需要为每个Julia会话支付一次加载时间成本,因此一种方法是尽可能长时间地保持会话运行.您可以include("test.jl")在会话中执行脚本.让我也提到令人惊叹的Revise.jl - 几乎不可能过分强调这个包!

3)(我对这种更难的方法没有经验.)有PackageCompiler.jl,它允许您将包编译到系统映像中.阅读Simon的这篇博客文章.

4)(不推荐)还有一个高度实验性的静态julia,它将你的脚本静态编译成一个共享库和可执行文件.

希望有所帮助.