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.02µs 3.18µs 299917.
#> 2 mean.default(x) 1.9µs 2µs 484513.
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.05µs 3.23µs 301490.
#> 2 mean.default(x) 1.9µs 1.99µs 484688.
#> 3 .Internal(mean(x)) 480.1ns 492.09ns 1987166.
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.8µs 46µs 21650.
#> 2 mean.default(x) 40.9µs 44.8µs 22230.
#> 3 .Internal(mean(x)) 37.7µs 43.3µs 23040.