Julia:在运行时生成代码并将其存储以供将来评估/执行
Posted
技术标签:
【中文标题】Julia:在运行时生成代码并将其存储以供将来评估/执行【英文标题】:Julia: Generate code at runtime and store it for future evaluation/execution 【发布时间】:2021-08-15 08:08:52 【问题描述】:在 Julia 中,如何生成任意代码以将其序列化为文件以供将来在完全不同的程序实例下执行?甚至可能吗?是否需要存储任何当前上下文以供将来执行?
【问题讨论】:
【参考方案1】:我认为您正在寻找 PackageCompiler.jl (https://github.com/JuliaLang/PackageCompiler.jl)
【讨论】:
【参考方案2】:这里有更详细的答案
将您的代码放入 Julia 包中。这是您应该对任何生产代码执行的操作 - 它更加方便。假设是MyPackage
创建一个脚本,以您计划使用的类型运行包中的所有方法,以便编译器知道要编译这些方法的哪个版本。让我们称之为precompile_MyPackage.jl
。您可以使用您经常使用的命令/场景以及来自MyPackage
的测试集。
使用PackageCompiler
编译包
using PackageCompiler
create_sysimage(:MyPackage, sysimage_path="sys_MyPackage.so", precompile_execution_file="precompile_MyPackage.jl")
-
完成后,您将使用以下命令启动 Julia:
julia --sysimage sys_MyPackage.so
最后请看精彩的教程视频https://live.juliacon.org/talk/Z8TE39
【讨论】:
以上是关于Julia:在运行时生成代码并将其存储以供将来评估/执行的主要内容,如果未能解决你的问题,请参考以下文章