Avoiding Method Dispatch
x <- runif(1e2)
bench::mark(
mean(x),
mean.default(x)
)[c("expression", "min", "median", "itr/sec", "n_gc")]
#> # A tibble: 2 × 4
#> expression min median `itr/sec`
#> <bch:expr> <bch:tm> <bch:tm> <dbl>
#> 1 mean(x) 3µs 3.17µs 298864.
#> 2 mean.default(x) 1.84µs 1.98µs 426539.
x <- runif(1e2)
bench::mark(
mean(x),
mean.default(x),
.Internal(mean(x))
)[c("expression", "min", "median", "itr/sec", "n_gc")]
#> # A tibble: 3 × 4
#> expression min median `itr/sec`
#> <bch:expr> <bch:tm> <bch:tm> <dbl>
#> 1 mean(x) 3.01µs 3.23µs 301586.
#> 2 mean.default(x) 1.83µs 1.91µs 496097.
#> 3 .Internal(mean(x)) 481.03ns 501.05ns 1966323.
x <- runif(1e4)
bench::mark(
mean(x),
mean.default(x),
.Internal(mean(x))
)[c("expression", "min", "median", "itr/sec", "n_gc")]
#> # A tibble: 3 × 4
#> expression min median `itr/sec`
#> <bch:expr> <bch:tm> <bch:tm> <dbl>
#> 1 mean(x) 42.4µs 46µs 21506.
#> 2 mean.default(x) 39.8µs 44.7µs 22133.
#> 3 .Internal(mean(x)) 37.3µs 43.3µs 22972.