假设我通过bash脚本启动Julia:
for i in {1..10}; do for j in 0.1 0.5 1 2 5 10; do j7 src/some_script.jl $i $j; done ; done
目前,我在some_script.jl
中做以下操作,以便编译时间更快:
# some_script.jl
main(i, j)
some_fct(time_limit=20, i, j) # time_limit is 20s
some_fct(time_limit=3600, i, j) # time limit is one hour
end
main(parse(Int, ARGS[1]), parse(Int, ARGS[2]))
我这样做对吗?由于第一次发射,some_fct
的第二次执行会更快吗?
i
和j
,我希望我的脚本利用实时预编译。这就是为什么我启动了我的函数两次,希望它的第二次启动会更快。最后,我在想,这是否:
# some_script.jl
main(i, j)
some_fct(time_limit=20, i, j) # time_limit is 20s
some_fct(time_limit=3600, i, j) # time limit is one hour
end
main(1,2)
对于some_fct来说比这个更好:
# some_script.jl
main(i, j)
some_fct(time_limit=3600, i, j) # time limit is one hour
end
main(1,2)
?
Bash脚本在每次循环迭代时启动Julia脚本。这不会保留任何预编译,可能会超过脚本内部的任何优化。相反,您应该完全用Julia编写循环,以利用任何预编译。