导入模块的多个版本/分支以在Julia中进行基准测试

Ale*_*ley 5 git benchmarking julia

如何在Julia的单个脚本中使用同一模块的多个不同版本或分支?

例如,如果我想对每个标记版本进行基准测试.

(有人最近问了一个类似的问题,我回答错了,但不过这可能有用.)

编辑:我自己已经回答了这个问题,但我相信他们可能会有更好的方式!

Ale*_*ley 4

您可以直接 git checkout 模块的不同版本,然后使用 benchmarkTools.jl 进行基准测试。然而,使用多个脚本可能会更好(或者至少忽略第一次试验)(请参阅此评论有关更多信息,请参阅此评论Importing multiple versions of the same Module/Package for Benchmarking )。

例如

packagedir = Pkg.dir("DSP")
version2checkout = "v0.0.7"
run(`cd $packagedir`); run(`git checkout tags/$version2checkout`)
import DSP
# do all your benmarking stuff
# start again
Run Code Online (Sandbox Code Playgroud)

防止您必须复制模块,但我想仍然有点笨重。您甚至可以通过捕获 git tag 的输出来循环执行多个版本

for i in readlines(`git tag`)
    version2checkout = chomp(i)
    # checkout version and benchmark
end
Run Code Online (Sandbox Code Playgroud)