If I run the following (starting Julia with only
@time of my function gives
0.030818 seconds (130.79 k allocations: 7.158 MiB)
But, if I run
using Pkg; Pkg.test(;julia_args=`--check-bounds=no`)
Then the result is:
1.420798 seconds (148.56 k allocations: 8.402 MiB)
--check-bounds, what else could be causing a major slow down?
It starts a new Julia process which means it also needs to load any packages, compile functions, etc for the first time (just like when you start a new Julia session).
Sorry I should have explained, I’m using
@time on my function call (several times to avoid compilation timing and I’m report the last run). So this does not include the time of loading packages, etc. I’m seeing a very different performance of my package during testing vs. directly running my test script.
Ah ok, that makes sense. Maybe code coverage or deprecation warnings? The command Pkg uses is here btw: Pkg.jl/Operations.jl at 90b535df2467cade9f1e63c1607fbc0ddf2303a4 · JuliaLang/Pkg.jl · GitHub
OK, I found the solution.
I included at the top of
runtests.jl the following:
Then I compared the options in test mode and script mode. Turns out
depwarn was the culprit.
So now when running:
using Pkg; Pkg.test(;julia_args=`--depwarn=no`)
now gives the same time as running