atime_versions {atime} | R Documentation |
Asymptotic timing of git versions
Description
Computation time and memory for a single R expression evaluated using several different git versions.
Usage
atime_versions(
pkg.path, N, setup, expr, sha.vec=NULL,
times=10, seconds.limit=0.01, verbose=FALSE,
pkg.edit.fun=pkg.edit.default, result=FALSE,
...)
Arguments
pkg.path |
Path to git repo containing R package. |
N |
numeric vector of data sizes to vary. |
setup |
expression to evaluate for every data size, before timings.
In contrast to |
expr |
code with package double-colon prefix, for example
|
sha.vec |
named character vector / list of versions. |
times |
number of times to evaluate each timed expression. |
seconds.limit |
if the median timing of any expression exceeds this many seconds, then no timings for larger N are computed. |
verbose |
logical, print messages after every data size? |
pkg.edit.fun |
function called to edit package before installation, should typically replace instances of PKG with PKG.SHA, default works with Rcpp packages. |
result |
logical, save results? (default FALSE) |
... |
named versions. |
Details
For convenience, versions can
be specified either as code (...), data (sha.vec
), or both.
Each version should be either ""
(to use currently installed
version of package, or if missing, install most recent
version from CRAN) or a SHA1 hash, which is passed as branch
arg to git2r::checkout
; version names used to identify/interpret
the output/plots.
Value
list of class atime with elements seconds.limit
(numeric
input param), timings
(data table of results).
Author(s)
Toby Dylan Hocking
See Also
atime_versions_exprs
converts expr
into a list of expressions, one for each version,
passed to atime
as the expr.list
argument.
Examples
if(FALSE){
tdir <- tempfile()
dir.create(tdir)
git2r::clone("https://github.com/tdhock/binsegRcpp", tdir)
atime.list <- atime::atime_versions(
pkg.path=tdir,
N=2^seq(2, 20),
setup={
max.segs <- as.integer(N/2)
data.vec <- 1:N
},
expr=binsegRcpp::binseg_normal(data.vec, max.segs),
cv="908b77c411bc7f4fcbcf53759245e738ae724c3e",
"rm unord map"="dcd0808f52b0b9858352106cc7852e36d7f5b15d",
"mvl_construct"="5942af606641428315b0e63c7da331c4cd44c091")
plot(atime.list)
atime::atime_versions_remove("binsegRcpp")
}