julia - 加快 Julia 中的包加载速度

标签 julia julia-jump

我使用 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 中加载包有时会相当慢。它已被讨论过很多次,您可以期待 future 的改进。 AFAIK 这将在 1.0 发布后的早期 1.x 版本中发生。看看this线。

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

3) (我对这种更困难的方法没有经验。)有PackageCompiler.jl它允许您将包编译到系统镜像中。阅读本文blog post西蒙。

4)(不推荐)也有高度实验性的static-julia它将您的脚本静态编译为共享库和可执行文件。

希望有帮助。

关于julia - 加快 Julia 中的包加载速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635221/

相关文章:

optimization - Julia JuMP - 目标函数中的 `max` 错误 : No method matching isless

Julia 无法进行多重分派(dispatch)

julia - julia中是否有诸如repmat for struct之类的函数?

julia - 仅对小于 N 的元素求和

Julia 最小化简单标量函数

loops - 循环 JuMP 约束中的变量子集

julia - 方法错误 : objects of type Module are not callable

module - 如何知道哪个模块导出了某个功能

julia - 当 Julia 错误引用不存在的行号时,这意味着什么?

julia - Julia 中可变结构的构造函数中的字典