在Julia中加速包加载

在Julia中加速包加载,julia,julia-jump,Julia,Julia Jump,我用GLPKMathProgInterface和JuMP编写了一个在Julia中求解线性规划的程序。Julia代码由python程序调用,该程序通过多个命令行调用运行Juila代码的多个实例。虽然我对实际解算器的性能非常满意,但初始化速度非常慢。我想知道是否有办法加快速度 例如,如果我只是将以下内容保存到一个文件中 @time using DataFrames, CSV, GLPKMathProgInterface, JuMP, ArgParse 然后运行它 mylabtop:~ me$ ju

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

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

@time using DataFrames, CSV, GLPKMathProgInterface, JuMP, ArgParse
然后运行它

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

这似乎非常慢,有没有什么好方法可以加快使用模块的速度,比如我可以做一次的预编译步骤

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

1) 在撰写本文之前,在Julia中加载包有时相当缓慢。它已经被讨论了很多次,你可以期待在未来的改进。这将在1.0发布后的早期1.x版本中发生。看看这条线

2) 由于通常每个会话只需支付一次加载时间成本,因此一种方法是使会话尽可能长时间运行。您可以在会话中使用
include(“test.jl”)
执行脚本。让我也提一提令人惊讶的事情——这一点怎么强调都不为过

3) (我没有使用这种更难的方法的经验。)有一种方法允许您将包编译到系统映像中。阅读西蒙的这篇文章

4) (不推荐)还有一种高度实验性的方法,它静态地将脚本编译到共享库和可执行文件中


希望能有所帮助。

我可以问一下,为什么要使用多个命令行调用来调用Julia吗?是否特别需要“命令行调用”?因为我要做的是使用一个Julia子流程,并在此子流程中调用“我的解算器”。