如何消除Julia可执行文件中的JIT开销(使用MWE)
我使用PackageCompiler希望创建一个可执行文件,从而消除了即时编译开销。 该文档解释说,我必须定义一个函数julia_main来调用程序的逻辑,并编写一个“探听文件”,该脚本调用我希望预编译的函数。My julia_main接受一个参数,即包含要分析的输入数据的文件的位置。因此,为了简单起见,我的监听文件只需要julia_main使用特定的输入文件进行一次调用即可。因此,我希望看到针对相同的输入文件执行时,生成的可执行文件运行得很快且运行良好(没有编译开销)。 但是a,那不是我所看到的。在新的Julia实例中julia_main,第一次执行大约需要74秒,后续执行大约需要4.5秒。每次调用可执行文件大约需要50秒。 我对build_executable函数的使用如下所示: julia> using PackageCompiler julia> build_executable("d:/philip/source/script/julia/jsource/SCRiPTMain.jl", "testexecutable", builddir = "d:/temp/builddir4", snoopfile = "d:/philip/source/script/julia/jsource/snoop.jl", compile = "all", verbose = true) 问题: 以上参数是否正确实现了我的无JIT开销的可执行文件的目标? 还有其他建议吗? 这是对的响应build_executable。从Start of snoop file execution!到的行End of snoop file execution!由我的代码发出。 Julia program file: "d:\philip\source\script\julia\jsource\SCRiPTMain.jl" C program file: "C:\Users\Philip\.julia\packages\PackageCompiler\CJQcs\examples\program.c" Build directory: "d:\temp\builddir4" Executing snoopfile: "d:\philip\source\script\julia\jsource\snoop.jl" Start …