gpt4 book ai didi

julia - 为什么 julia 需要很长时间才能导入一个包?

转载 作者:行者123 更新时间:2023-12-03 14:06:43 26 4
gpt4 key购买 nike

我很关心性能。因此,我将其创建为关于首次调用或导入包时的延迟问题。这可能是一个愚蠢的问题。
当我第一次为 ex 添加包时,Plots 会消耗一些时间来构建包。
再次,当我第一次在我的笔记本上导入包时,我也花了一些时间(~1 分钟)说 Precompiling message导入包后,当我点击 plot()这也消耗了一些时间(30s - 60s)并最终返回一个情节。
一旦我使用了绘图功能,下次使用时就不会花费太多时间来产生结果。
每当我重新启动笔记本时,就会发生这种延迟。
我猜它是在执行之前编译函数。因为与 python 不同,julia 不是脚本语言。所以,它应该经过编译。但是,为什么每次重启笔记本时都会出现延迟?
无论如何我可以抑制这种延迟吗?
无论如何,我可以预编译一次所有内容,以便下次在病房中我看不到任何延迟,而不必担心笔记本或 Julia 终端中的内核重启。
为什么会发生延迟?完全是因为编译时间还是取决于我的机器?

最佳答案

您可以做两件事来减少延迟:

  • 使用 Julia 1.5.0(今天的测试版) - 它动态地允许对包和 Plots.jl 使用不同的优化级别正在利用这一点将首次绘图时间减少一半以上。这确实是一个唾手可得的果实 - 更新 Julia。这是我的笔记本电脑上的测量值:
  • julia> @time using Plots
    16.816181 seconds (14.46 M allocations: 854.353 MiB, 2.31% gc time)

    julia> @time Plots.plot(sin.(1:0.25:7))
    4.292128 seconds (4.70 M allocations: 243.866 MiB, 2.01% gc time)
    # this waits another 7s before the plot actually appears on screen
    那些时间不是很好,但可以接受。
  • 构建 Plots进入您的系统镜像(有关详细信息,请参阅 https://julialang.github.io/PackageCompiler.jl/dev/examples/plots/)
  • using PackageCompiler
    create_sysimage(:Plots, sysimage_path="sys_plots.so", precompile_execution_file="precompile_plots.jl")
    这将您的首次绘图时间减少到半秒以下。还有一个缺点是 Julia 解释器 (REPL) 需要 400 毫秒以上的时间才能启动,并且您需要使用标志 --sysimage sys_plots.so (或 --sysimage sys_plots.dll 在 Windows 上)启动 Julia 时。预编译包有时也会带来其他警告(例如,每次包更新都需要重新编译等)。

    关于julia - 为什么 julia 需要很长时间才能导入一个包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62752978/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com