如何加快 Julia 脚本的启动时间

2024-04-03

我编写了一个脚本来在 Julia 中绘制每日数据,但我发现它运行缓慢。似乎没有理想的方法来加速它。

例如 foo.jl

#!/bin/bash
#=
exec julia -O0 --compile=min "${BASH_SOURCE[0]}" "$@"
=#

using UnicodePlots, CSV, DataFrames, Chain, Dates
...

我希望如果我第一次运行“foo.jl a.csv b.csv”,可能需要一些时间来编译/加载(10秒)。 第二次运行它时,它可以跳过编译过程。(应该在3秒左右)。

现在可以吗?我使用的是1.8.3版本。 或者,我可以设置每次启动 julia 时默认编译的那些软件包以加快速度吗?


您需要创建一个系统映像,并在每次启动 Julia 时为其指定一个参数:

using PackageCompiler
create_sysimage(["UnicodePlots, CSV, DataFrames, Chain"], sysimage_path="sys_foo.so", precompile_execution_file="script_with_your_typical_workflow.jl")

完成此操作后,您将需要运行代码:

julia --sysimage sys_foo.so foo.jl

有关更多信息,请参阅此线程:朱莉娅似乎很慢 https://stackoverflow.com/questions/73599900/julia-seems-to-be-very-slow

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何加快 Julia 脚本的启动时间 的相关文章

  • 如何从 Julia 程序调用 Python 函数?

    我使用 numpy pandas scikit learn 在 Python 中编写了一些代码 是否可以从 Julia 程序调用此 Python 代码 我认为你可以考虑三种不同的方式从 Julia 调用 Python 代码 按照从最低级别到
  • 如何生成随机概率分布 julia

    我在字典中有一个键列表 我想为每个项目分配一个 0 到 1 之间的数字 使分配的数字总和为 1 如何做到这一点 我尝试使用 rand 进行一些操作 但没有成功 有什么建议么 更数学的答案是使用狄利克雷分布 https en wikipedi
  • 获取 Julia Lang 中当前变量的列表

    我是朱莉娅 朗的新手 我是Matlab背景出来的 在Matlab中 当按下whos命令我将获取当前范围内的所有变量 而且 我可以将它们存储在另一个变量中 例如x whos Julia 中是否存在这样的命令 Matlab 中的示例代码 gt
  • Julia 转置 DataFrame 中的分组数据?

    ds Dataset group repeat 1 3 inner 2 b repeat 1 2 inner 3 c repeat 1 1 inner 6 d repeat 1 6 inner 1 e string a f 在inmemor
  • Julia 中的内存分配

    将程序从 Python 翻译成 Julia 后 我非常不满意 对于小 非常小的输入 Python 更快 对于中等输入 Julia 更快 但没那么快 对于大输入 Python 更快 我认为原因是我不明白内存分配是如何工作的 这里自学者 没有C
  • 如何在 Julia 1.0 中离线安装 julia 包?

    我有自己的 Julia 包 在 Julia 0 6 上运行良好 当我尝试升级到 Julia 1 0 时 我发现在 Julia 1 0 中添加我自己的包更加困难 我不能把它放在 pkg dir 下 在我的情况下 该包只是我本地磁盘上的几个文件
  • 有没有办法重置 Julia 中的当前工作目录?

    假设当前工作目录是C 保存 jl文件的目录 然后我将cwd切换到一些子文件夹来执行一些任务 有没有办法直接将cwd重置回C 之后 即最初的cwd 或者 是否可以独立于当前工作目录来定位正在运行的 jl 文件所在的目录 无需事先将 cwd 保
  • 如何加快 Julia 脚本的启动时间

    我编写了一个脚本来在 Julia 中绘制每日数据 但我发现它运行缓慢 似乎没有理想的方法来加速它 例如 foo jl bin bash exec julia O0 compile min BASH SOURCE 0 using Unicod
  • Julia ccall 接口和符号的问题

    我正在尝试使用朱莉娅的ccall与 C 库接口的函数 所有类型和指针都是正确的 并且下面的函数调用成功返回正确的答案 为简洁起见 此处未显示变量定义和设置 ccall vDSP convD libacc Void Ptr T Int64 P
  • 从 Julia 程序执行 >> shell 运算符

    我试图使用反引号从 Julia 内部附加一个文件 run cat file2 gt gt file1 但这行不通 似乎 gt gt 运算符无法正确解释 有没有办法通过管道或其他技巧来做到这一点 如果您尝试以编程方式执行此操作 则主要问题正文
  • 在 Julia 中迭代具有不同数量参数的不同函数

    我正在尝试使用不同数量的参数对不同的函数运行循环 变量是在运行时在循环内创建的 我想在每次迭代时使用 eval 来使用变量 symbol 实例化一个 Struct 但是 我不能这样做 因为 eval 只在全局范围内有效 这是有效案例的 MW
  • Julia:生成唯一的随机整数数组

    我正在尝试创建 10 个唯一随机整数的元素数组 但是我无法创建具有唯一值的数组 Julia 中是否有类似 Python 的东西样本函数 https docs python org 2 library random html random s
  • 如何创建并推送到共享或分布式数组数组?

    我编写了 Julia 代码 其中初始化一个空数组 如下所示 a 稍后在代码中 我简单地推送到该数组 如下所示 推 a b 其中 b c d e 是另一个数组 每个 b 可以具有不同的长度 这在非并行化代码中工作得很好 但是 我想在并行代码中
  • 如何更改julia(1.8.5)默认安装包的位置?

    如何更改julia 1 8 5 默认安装包的位置 我不想把包安装到c盘 因为pwd 和homedir 都默认到c盘 如何修改 我想每次都像安装python包一样打开Julia 有固定的安装路径 例如user Base User site 我
  • 有没有办法在 writetable() 中使用字符串作为分隔符 - Julia

    当使用 writetable 将数据帧写入文件时 我希望能够将分隔符设为空格然后逗号 即 作为分隔符 我知道 writetable 只能选择将单个字符作为分隔符参数 是否有可能的解决方法能够将字符串作为分隔符 或者 是否可以简单地在数据框中
  • 朱莉娅中未显示情节

    我有一个名为 mycode jl 的文件 其中包含以下代码here https juliastats org MultivariateStats jl dev pca using MultivariateStats RDatasets Pl
  • @distributed 似乎有效,函数返回很不稳定

    我正在学习如何在 Julia 中进行并行计算 我在用着 sync distributed在 3x 嵌套的开始处for循环并行化事物 参见底部的代码 从线路上看println errCmp row col 我可以观察数组的所有元素errCmp
  • 朱莉娅在矩阵中查找(行,列)而不是索引

    在 Julia 中 您可以通过以下方式找到矩阵中元素的坐标 julia gt find x gt x 2 1 2 3 2 3 4 1 0 2 3 element Array Int64 1 2 4 9 这些值是正确的 但我更希望得到 row
  • Julia:如何更新到软件包的最新版本(即 Flux)

    I have Julia 1 1 在本例中 我想更新到软件包的最新版本Flux 8 3 0根据Flux jl 的文档 https fluxml ai Flux jl stable 当我打字时 Pkg status Flux I get St
  • 在 Julia 中保存和检索字典的正确方法是什么?

    我已经看到 Julia 充分解释了 MAT 文件 这些文件中的结构可以毫无问题地作为字典读取 现在我创建了自己的字典 其结构如下 String String gt Int Int Int 在每个条目上 我可以保存它writedlm它产生了一

随机推荐