You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@jrevels has pointed out that it is probably not feasible to have Pkg support this functionality in the short-term (see discussion here). But it seems like BenchmarkTools could support this natively, perhaps as a prototype to be taken up by Pkg at a later time.
Let's say we call this function benchmark_pkg(), then my proposal is to support the following:
benchmark_pkg("Foo",:major) # runs benchmarks on all major releasesbenchmark_pkg("Foo",:minor) # runs benchmarks on all major & minor releasesbenchmark_pkg("Foo",:patch) # runs benchmarks on all releases# run benchmarks for each version/commit stored in a user-provided listbenchmark_pkg("Foo",::Vector{AbstractString})
How can I help take baby steps towards this vision? My thought is along these lines:
User defines benchmarks in perf/runtests.jl. (Maybe perf/runbenchmarks.jl would be a better name?)
pkg_benchmark() finds parameters using tune!, saves them in perf/benchmark_params.jl
Save the original/starting commit
For each version specified by the user:
Use git checkout ..., to selectively checkout the src/ repository.
Run the benchmarks
After all benchmarks are run, return src/ to its original/starting commit
Is this reasonable? Or more dangerous than I realize? For example, what if user edits code while benchmarks are running and saves the result...
The text was updated successfully, but these errors were encountered:
In an ideal world, I would love the following to work:
@jrevels has pointed out that it is probably not feasible to have
Pkg
support this functionality in the short-term (see discussion here). But it seems likeBenchmarkTools
could support this natively, perhaps as a prototype to be taken up byPkg
at a later time.Let's say we call this function
benchmark_pkg()
, then my proposal is to support the following:How can I help take baby steps towards this vision? My thought is along these lines:
perf/runtests.jl
. (Maybeperf/runbenchmarks.jl
would be a better name?)pkg_benchmark()
finds parameters usingtune!
, saves them inperf/benchmark_params.jl
git checkout ...
, to selectively checkout thesrc/
repository.src/
to its original/starting commitIs this reasonable? Or more dangerous than I realize? For example, what if user edits code while benchmarks are running and saves the result...
The text was updated successfully, but these errors were encountered: