2

我是 Julia 的新手,在收到建议1.6.0-DEV.1371后,由于 Julia 1.5.2 中包的加载时间长,我开始使用夜间构建。

所以我尝试更改默认目录DEPOT_PATH并将所有文件复制~/.julia/opt/julia(由我的用户拥有)。现在,如果我使用默认目录启动 Julia 并运行下面的代码,大约需要 4 秒。但是,当我在新目录 ( JULIA_DEPOT_PATH=/opt/julia julia) 中启动 julia 时,相同的代码花费了难以置信的 83 秒。Julia 1.5.2 也是如此(默认目录中为 17 秒,新目录中为 200 秒)。

这是我用来测量时间的代码。

t = time(); using Plots; time() - t

关于这种奇怪(和烦人)的行为有什么解释吗?


我的平台信息:

Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i3-6100U CPU @ 2.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake)

我正在使用SSD。

4

1 回答 1

2

很有可能现在您使用新 Julia 的JULIA_DEPOT_PATH. 通常的方法是设置JULIA_DEPOT_PATH为一个空文件夹,然后将它们安装在那里。

关于启动时间,您可以执行以下操作:

  1. 预编译包(当您第一次使用新版本的包时也会发生这种情况)
using Pkg
pkg"precompile"

一旦Plots预编译,每次加载仍然需要大约 10 秒。

  1. 如果上述时间不可接受,则将您的内置Plots到 Julia 系统映像中。
using PackageCompiler
create_sysimage(:Plots, sysimage_path="sys_plots.so", precompile_execution_file="precompile_plots.jl")

对于precompile_plots.jl你可以使用你经常使用的命令或者来自 Plots.jl 的测试集。

完成后,您将使用以下命令启动 Julia:

julia --sysimage sys_plots.so

构建系统映像需要很长时间,但是一旦完成,加载 Plots.jl 只需几毫秒。

更多信息可以在这里找到:

于 2020-10-30T01:23:28.193 回答