我正在开发一个包, 这个包使用BinDeps来引入一些C源代码,并编译一些二进制文件。
我的julia模块大部分只是将ccall暴露给那些函数。
现在有大约5种不同的选项可以编译C源,并打开各种不同的优化。
并且与它们一起使用由写入BinDeps输出的deps.jl
的常量触发的各种其他更改。
所以我想将我的包的每个不同版本导入为不同的模块,因此我可以使用BenchmarkTools.jl对它们进行基准测试。
目前,我的计划是创建一个脚本,通过复制和更改它的名称,以及使用不同的deps.jl
文件链接到不同的编译,生成我的模块的5个不同版本共享库。
然后(假设我用数字重命名):
using BenchmarkTools
import MyMod_1
import MyMod_2
import MyMod_3
import MyMod_4
import MyMod_5
@show @benchmark MyMod_1.foo()
@show @benchmark MyMod_2.foo()
@show @benchmark MyMod_3.foo()
@show @benchmark MyMod_4.foo()
@show @benchmark MyMod_5.foo()
Currently I am scripting the copying and renaming of modules. 它有点可怕,看起来有点脆弱。
但是有更好的方法吗?