matrixStats.benchmarks


allocVector() benchmarks

This report benchmark the performance of allocVector() against alternative methods.

Alternative methods

where

> allocVector_R1 <- function(length, value = NA) {
+     x <- vector(mode = typeof(value), length = length)
+     if (!is.finite(value) || value != 0) 
+         x[] <- value
+     x
+ }
> allocVector_R2 <- function(length, value = NA) {
+     x <- matrix(data = value, nrow = length, ncol = 1L)
+     as.vector(x)
+ }

Data type “integer”

Data

> rvector <- function(n, mode = c("logical", "double", "integer"), range = c(-100, +100), na_prob = 0) {
+     mode <- match.arg(mode)
+     if (mode == "logical") {
+         x <- sample(c(FALSE, TRUE), size = n, replace = TRUE)
+     }     else {
+         x <- runif(n, min = range[1], max = range[2])
+     }
+     storage.mode(x) <- mode
+     if (na_prob > 0) 
+         x[sample(n, size = na_prob * n)] <- NA
+     x
+ }
> rvectors <- function(scale = 10, seed = 1, ...) {
+     set.seed(seed)
+     data <- list()
+     data[[1]] <- rvector(n = scale * 100, ...)
+     data[[2]] <- rvector(n = scale * 1000, ...)
+     data[[3]] <- rvector(n = scale * 10000, ...)
+     data[[4]] <- rvector(n = scale * 1e+05, ...)
+     data[[5]] <- rvector(n = scale * 1e+06, ...)
+     names(data) <- sprintf("n = %d", sapply(data, FUN = length))
+     data
+ }
> data <- rvectors(mode = mode)
> values <- list(zero = 0, one = 1, `NA` = NA_real_)
> if (mode != "double") 
+     values <- lapply(values, FUN = function(x) {
+         storage.mode(x) <- mode
+         x
+     })

Results

n = 1000 matrix

> n <- length(data[["n = 1000"]])
> str(value)
 int 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.001291 0.0016485 0.0025727 0.0017720 0.0019845 0.077012
2 rep 0.002220 0.0023415 0.0025900 0.0024800 0.0025825 0.009392
3 allocVector_R1 0.002845 0.0032365 0.0036185 0.0034215 0.0036040 0.018481
4 allocVector_R2 0.004760 0.0051805 0.0057465 0.0054070 0.0059185 0.020808
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
2 rep 1.719597 1.420382 1.006705 1.399549 1.301335 0.1219550
3 allocVector_R1 2.203718 1.963300 1.406462 1.930869 1.816075 0.2399756
4 allocVector_R2 3.687064 3.142554 2.233603 3.051354 2.982363 0.2701917

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000"]])
> str(value)
 int 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.001608 0.0019880 0.0022513 0.0021310 0.0023155 0.009959
2 rep 0.002176 0.0023925 0.0025901 0.0025400 0.0026475 0.004491
4 allocVector_R2 0.004733 0.0053460 0.0059788 0.0056220 0.0059840 0.029449
3 allocVector_R1 0.006413 0.0069215 0.0074955 0.0071845 0.0076400 0.021647
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
2 rep 1.353234 1.203471 1.150483 1.191929 1.143382 0.4509489
4 allocVector_R2 2.943408 2.689135 2.655747 2.638198 2.584323 2.9570238
3 allocVector_R1 3.988184 3.481640 3.329435 3.371422 3.299503 2.1736118

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000"]])
> str(value)
 int NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.001671 0.0019900 0.0023489 0.0021735 0.0023745 0.013166
2 rep 0.002120 0.0024015 0.0027203 0.0024985 0.0026735 0.019697
4 allocVector_R2 0.004969 0.0054450 0.0059545 0.0057455 0.0060480 0.021023
3 allocVector_R1 0.006471 0.0068795 0.0075014 0.0070935 0.0073740 0.033466
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.268701 1.206784 1.158105 1.149528 1.125921 1.496050
4 allocVector_R2 2.973669 2.736181 2.534990 2.643432 2.547063 1.596764
3 allocVector_R1 3.872531 3.457035 3.193517 3.263630 3.105496 2.541850

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 10000 matrix

> n <- length(data[["n = 10000"]])
> str(value)
 int 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.003047 0.0034870 0.0038539 0.0037400 0.0039890 0.011583
3 allocVector_R1 0.004705 0.0051640 0.0055503 0.0054305 0.0057080 0.013387
4 allocVector_R2 0.011985 0.0132340 0.0143255 0.0137170 0.0143160 0.045671
2 rep 0.016343 0.0164935 0.0167819 0.0166105 0.0167905 0.024313
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
3 allocVector_R1 1.544142 1.480929 1.440160 1.452005 1.430935 1.155746
4 allocVector_R2 3.933377 3.795240 3.717135 3.667647 3.588869 3.942934
2 rep 5.363636 4.729997 4.354512 4.441310 4.209200 2.099024

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000"]])
> str(value)
 int 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.006401 0.0072415 0.0075306 0.0074175 0.0076965 0.015085
4 allocVector_R2 0.012174 0.0135805 0.0146636 0.0141695 0.0147865 0.030900
2 rep 0.016428 0.0165950 0.0169292 0.0167140 0.0169350 0.021704
3 allocVector_R1 0.031605 0.0322645 0.0331387 0.0325395 0.0328135 0.064134
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
4 allocVector_R2 1.901890 1.875371 1.947207 1.910280 1.921198 2.048392
2 rep 2.566474 2.291652 2.248073 2.253320 2.200351 1.438780
3 allocVector_R1 4.937510 4.455500 4.400568 4.386855 4.263431 4.251508

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000"]])
> str(value)
 int NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.006388 0.0069675 0.0074947 0.0073320 0.0077120 0.015878
4 allocVector_R2 0.012178 0.0133495 0.0143775 0.0140195 0.0147885 0.030996
2 rep 0.016430 0.0165820 0.0174405 0.0167040 0.0170115 0.058788
3 allocVector_R1 0.031339 0.0321005 0.0329580 0.0325600 0.0332745 0.049945
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
4 allocVector_R2 1.906387 1.915967 1.918352 1.912098 1.917596 1.952135
2 rep 2.572010 2.379907 2.327028 2.278232 2.205848 3.702481
3 allocVector_R1 4.905917 4.607176 4.397489 4.440807 4.314640 3.145547

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 100000 matrix

> n <- length(data[["n = 100000"]])
> str(value)
 int 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 100000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.017483 0.0202825 0.0758000 0.0237475 0.1618945 0.183558
3 allocVector_R1 0.018691 0.0215060 0.0726146 0.0247675 0.1617020 0.211468
4 allocVector_R2 0.076114 0.0860500 0.2589109 0.1028640 0.3474015 5.896655
2 rep 0.126403 0.1339245 0.2467912 0.1584090 0.2577160 5.898492
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.0000000 1.000000 1.000000 1.00000
3 allocVector_R1 1.069096 1.060323 0.9579765 1.042952 0.998811 1.15205
4 allocVector_R2 4.353601 4.242574 3.4157123 4.331572 2.145851 32.12421
2 rep 7.230052 6.602958 3.2558221 6.670555 1.591876 32.13421

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 100000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 100000"]])
> str(value)
 int 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 100000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.043691 0.0456425 0.1471062 0.0535520 0.1681350 5.466483
4 allocVector_R2 0.075244 0.0849685 0.2287936 0.0977260 0.3340995 5.711340
2 rep 0.123369 0.1276035 0.1793324 0.1524165 0.2520245 0.293475
3 allocVector_R1 0.216631 0.2270355 0.3464223 0.2790740 0.4904475 0.571319
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
4 allocVector_R2 1.722185 1.861609 1.555295 1.824880 1.987091 1.0447924
2 rep 2.823671 2.795717 1.219067 2.846140 1.498941 0.0536863
3 allocVector_R1 4.958252 4.974213 2.354913 5.211271 2.916986 0.1045131

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 100000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 100000"]])
> str(value)
 int NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 100000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.043393 0.0457640 0.0841466 0.0501390 0.1605895 0.201411
4 allocVector_R2 0.074571 0.0861125 0.1791867 0.1002435 0.3397675 0.395409
2 rep 0.126574 0.1321670 0.2319547 0.1524180 0.2403570 5.846479
3 allocVector_R1 0.222513 0.2309980 0.3958427 0.2737885 0.4893180 6.102523
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
4 allocVector_R2 1.718503 1.881665 2.129459 1.999312 2.115752 1.963195
2 rep 2.916922 2.888012 2.756556 3.039909 1.496717 29.027605
3 allocVector_R1 5.127855 5.047592 4.704206 5.460590 3.047011 30.298857

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 100000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 1000000 matrix

> n <- length(data[["n = 1000000"]])
> str(value)
 int 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.167854 0.1932035 0.6314815 0.2049925 0.2340575 6.194362
3 allocVector_R1 0.175405 0.2003095 0.6118296 0.2158965 0.2373765 4.106948
4 allocVector_R2 0.919935 0.9767010 1.5225728 1.0038025 1.0480050 6.820040
2 rep 1.218644 1.3482700 1.6845087 1.4079745 1.4658250 7.524439
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.0000000 1.000000 1.000000 1.0000000
3 allocVector_R1 1.044985 1.036780 0.9688796 1.053192 1.014180 0.6630139
4 allocVector_R2 5.480566 5.055297 2.4111122 4.896777 4.477554 1.1010077
2 rep 7.260143 6.978497 2.6675501 6.868420 6.262670 1.2147238

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000000"]])
> str(value)
 int 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.412375 0.4283630 0.891144 0.4389290 0.4659515 5.902721
4 allocVector_R2 0.872616 0.9157895 1.467150 0.9277395 0.9500330 6.577447
2 rep 1.167224 1.2292450 1.416293 1.2601560 1.2729535 4.918317
3 allocVector_R1 2.086407 2.2512220 2.935449 2.2847845 2.3412995 7.085598
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
4 allocVector_R2 2.116074 2.137882 1.646367 2.113644 2.038910 1.1143076
2 rep 2.830492 2.869634 1.589298 2.870979 2.731944 0.8332288
3 allocVector_R1 5.059489 5.255407 3.294023 5.205362 5.024771 1.2003952

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000000"]])
> str(value)
 int NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.412432 0.4321405 0.8478479 0.437984 0.5387145 6.619624
4 allocVector_R2 0.889459 0.9166540 1.5997440 0.930059 1.0314850 6.800204
2 rep 1.183535 1.2285340 5.0905064 1.260788 1.3288735 341.470976
3 allocVector_R1 2.186592 2.2412955 3.0821365 2.285582 3.6176760 8.634266
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
4 allocVector_R2 2.156620 2.121194 1.886829 2.123500 1.914716 1.027279
2 rep 2.869649 2.842904 6.004033 2.878617 2.466749 51.584648
3 allocVector_R1 5.301703 5.186497 3.635247 5.218414 6.715386 1.304344

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 1000000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 10000000 matrix

> n <- length(data[["n = 10000000"]])
> str(value)
 int 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
3 allocVector_R1 12.63546 13.02242 20.16692 13.65514 21.85036 351.92373
1 allocVector 12.65063 13.02751 16.89038 13.76262 21.80091 23.74778
2 rep 20.45499 20.86397 32.21169 22.45490 30.39022 366.81992
4 allocVector_R2 29.58066 36.67542 40.33890 38.04415 39.47954 377.51608
  expr min lq mean median uq max
3 allocVector_R1 1.000000 1.000000 1.000000 1.000000 1.0000000 1.0000000
1 allocVector 1.001201 1.000391 0.837529 1.007871 0.9977372 0.0674799
2 rep 1.618856 1.602157 1.597254 1.644428 1.3908342 1.0423279
4 allocVector_R2 2.341082 2.816329 2.000251 2.786068 1.8068146 1.0727213

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000000"]])
> str(value)
 int 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 13.23932 13.64579 20.96921 14.32506 22.39856 357.4252
2 rep 20.34816 21.12817 28.70912 22.76576 29.92917 357.9072
4 allocVector_R2 29.65705 36.88882 51.00195 38.35922 39.49794 372.1699
3 allocVector_R1 40.42712 47.83018 55.29098 48.88169 50.40713 394.9465
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.536948 1.548329 1.369109 1.589226 1.336210 1.001348
4 allocVector_R2 2.240073 2.703312 2.432230 2.677771 1.763414 1.041252
3 allocVector_R1 3.053564 3.505124 2.636770 3.412321 2.250463 1.104977

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000000"]])
> str(value)
 int NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 13.20015 13.77348 20.71589 14.19909 22.31642 359.7546
2 rep 20.41913 21.61964 35.40740 22.77208 30.07727 357.6511
4 allocVector_R2 29.49000 36.33405 43.83292 38.06939 39.66189 368.1529
3 allocVector_R1 40.62559 48.08906 58.71423 49.56928 50.75201 387.2327
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
2 rep 1.546887 1.569657 1.709190 1.603770 1.347764 0.9941532
4 allocVector_R2 2.234066 2.637972 2.115908 2.681114 1.777252 1.0233448
3 allocVector_R1 3.077661 3.491425 2.834260 3.491017 2.274201 1.0763802

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on integer+n = 10000000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

Data type “double”

Data

> rvector <- function(n, mode = c("logical", "double", "integer"), range = c(-100, +100), na_prob = 0) {
+     mode <- match.arg(mode)
+     if (mode == "logical") {
+         x <- sample(c(FALSE, TRUE), size = n, replace = TRUE)
+     }     else {
+         x <- runif(n, min = range[1], max = range[2])
+     }
+     storage.mode(x) <- mode
+     if (na_prob > 0) 
+         x[sample(n, size = na_prob * n)] <- NA
+     x
+ }
> rvectors <- function(scale = 10, seed = 1, ...) {
+     set.seed(seed)
+     data <- list()
+     data[[1]] <- rvector(n = scale * 100, ...)
+     data[[2]] <- rvector(n = scale * 1000, ...)
+     data[[3]] <- rvector(n = scale * 10000, ...)
+     data[[4]] <- rvector(n = scale * 1e+05, ...)
+     data[[5]] <- rvector(n = scale * 1e+06, ...)
+     names(data) <- sprintf("n = %d", sapply(data, FUN = length))
+     data
+ }
> data <- rvectors(mode = mode)
> values <- list(zero = 0, one = 1, `NA` = NA_real_)
> if (mode != "double") 
+     values <- lapply(values, FUN = function(x) {
+         storage.mode(x) <- mode
+         x
+     })

Results

n = 1000 matrix

> n <- length(data[["n = 1000"]])
> str(value)
 num 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.001420 0.0015895 0.0019484 0.0017310 0.0018795 0.015117
2 rep 0.002024 0.0021010 0.0022897 0.0021690 0.0023630 0.004466
3 allocVector_R1 0.002876 0.0030970 0.0034427 0.0033025 0.0035025 0.012204
4 allocVector_R2 0.004793 0.0050725 0.0055243 0.0052555 0.0055090 0.023478
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.425352 1.321799 1.175172 1.253033 1.257249 0.295429
3 allocVector_R1 2.025352 1.948411 1.766884 1.907857 1.863528 0.807303
4 allocVector_R2 3.375352 3.191255 2.835257 3.036106 2.931099 1.553086

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000"]])
> str(value)
 num 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.001681 0.002004 0.0023142 0.0021520 0.0022920 0.014470
2 rep 0.002105 0.002248 0.0024207 0.0023670 0.0024815 0.004899
4 allocVector_R2 0.004855 0.005267 0.0059615 0.0054860 0.0057430 0.038419
3 allocVector_R1 0.006310 0.006711 0.0072224 0.0069395 0.0071400 0.028761
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
2 rep 1.252231 1.121757 1.046016 1.099907 1.082679 0.3385625
4 allocVector_R2 2.888162 2.628243 2.576061 2.549256 2.505672 2.6550795
3 allocVector_R1 3.753718 3.348802 3.120924 3.224675 3.115183 1.9876296

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000"]])
> str(value)
 num NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.001828 0.0021695 0.0024641 0.002324 0.0025125 0.013616
2 rep 0.002124 0.0022440 0.0024270 0.002336 0.0025085 0.006572
4 allocVector_R2 0.005172 0.0054750 0.0058928 0.005744 0.0059930 0.014087
3 allocVector_R1 0.006307 0.0066490 0.0072830 0.006839 0.0071050 0.037852
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.0000000 1.000000 1.000000 1.0000000
2 rep 1.161926 1.034340 0.9849598 1.005164 0.998408 0.4826675
4 allocVector_R2 2.829322 2.523623 2.3915083 2.471601 2.385274 1.0345917
3 allocVector_R1 3.450219 3.064761 2.9556748 2.942771 2.827861 2.7799647

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 10000 matrix

> n <- length(data[["n = 10000"]])
> str(value)
 num 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.005112 0.0056390 0.0073907 0.0060030 0.006675 0.030509
3 allocVector_R1 0.006537 0.0072380 0.0090508 0.0077700 0.008711 0.029767
2 rep 0.016425 0.0167215 0.0188860 0.0168590 0.017179 0.041688
4 allocVector_R2 0.016705 0.0181205 0.0247799 0.0214445 0.023861 0.071965
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
3 allocVector_R1 1.278756 1.283561 1.224625 1.294353 1.305019 0.9756793
2 rep 3.213028 2.965331 2.555383 2.808429 2.573633 1.3664165
4 allocVector_R2 3.267801 3.213424 3.352864 3.572297 3.574682 2.3588122

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000"]])
> str(value)
 num 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.008087 0.0087930 0.0096728 0.0091775 0.0099930 0.020400
2 rep 0.015890 0.0161675 0.0169276 0.0167310 0.0170655 0.030499
4 allocVector_R2 0.016701 0.0179160 0.0194537 0.0188615 0.0205270 0.030708
3 allocVector_R1 0.029915 0.0309650 0.0323190 0.0319640 0.0324835 0.064344
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.964882 1.838679 1.750012 1.823046 1.707745 1.495049
4 allocVector_R2 2.065166 2.037530 2.011165 2.055189 2.054138 1.505294
3 allocVector_R1 3.699147 3.521551 3.341218 3.482866 3.250625 3.154118

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000"]])
> str(value)
 num NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.008084 0.0087125 0.0097897 0.0091590 0.0110350 0.016765
2 rep 0.015933 0.0165005 0.0170365 0.0168925 0.0170990 0.029958
4 allocVector_R2 0.016285 0.0180090 0.0199812 0.0191240 0.0214535 0.033657
3 allocVector_R1 0.028315 0.0310975 0.0321950 0.0317230 0.0322925 0.064343
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.970930 1.893888 1.740258 1.844361 1.549524 1.786937
4 allocVector_R2 2.014473 2.067030 2.041047 2.088001 1.944132 2.007575
3 allocVector_R1 3.502598 3.569297 3.288673 3.463588 2.926371 3.837936

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 100000 matrix

> n <- length(data[["n = 100000"]])
> str(value)
 num 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 100000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
3 allocVector_R1 0.032641 0.0449265 0.2199961 0.2854820 0.3175340 0.451317
1 allocVector 0.033243 0.0456940 0.2229439 0.2867635 0.3176900 0.411610
2 rep 0.123580 0.1597170 0.4444608 0.3618950 0.3876625 7.486867
4 allocVector_R2 0.124075 0.1720470 0.4737744 0.5797065 0.6271285 0.759641
  expr min lq mean median uq max
3 allocVector_R1 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
1 allocVector 1.018443 1.017084 1.013399 1.004489 1.000491 0.9120197
2 rep 3.786036 3.555073 2.020312 1.267663 1.220854 16.5889319
4 allocVector_R2 3.801201 3.829522 2.153558 2.030624 1.974996 1.6831650

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 100000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 100000"]])
> str(value)
 num 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 100000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.058183 0.0675595 0.1927077 0.2527905 0.2886095 0.357557
2 rep 0.120672 0.1300380 0.2791915 0.3255000 0.3699000 0.492998
3 allocVector_R1 0.210113 0.2214615 0.4975119 0.5187295 0.5849955 7.302006
4 allocVector_R2 0.125831 0.1801910 0.5903175 0.5495205 0.6041575 7.363703
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 2.074008 1.924792 1.448782 1.287627 1.281663 1.378796
3 allocVector_R1 3.611244 3.278022 2.581692 2.052013 2.026945 20.421936
4 allocVector_R2 2.162676 2.667145 3.063280 2.173818 2.093339 20.594487

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 100000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 100000"]])
> str(value)
 num NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 100000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.056891 0.0681750 0.3266920 0.2546510 0.2715175 7.396849
2 rep 0.119781 0.1594865 0.2848875 0.3340025 0.3772695 0.491985
3 allocVector_R1 0.203552 0.2210220 0.4985277 0.5216630 0.5798600 7.137726
4 allocVector_R2 0.124222 0.1666655 0.4480961 0.5427785 0.6066960 0.748163
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.0000000 1.000000 1.000000 1.0000000
2 rep 2.105447 2.339369 0.8720372 1.311609 1.389485 0.0665128
3 allocVector_R1 3.577930 3.241980 1.5259872 2.048541 2.135627 0.9649685
4 allocVector_R2 2.183509 2.444672 1.3716166 2.131460 2.234464 0.1011462

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 100000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 1000000 matrix

> n <- length(data[["n = 1000000"]])
> str(value)
 num 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.295625 0.3784000 1.051034 0.4125735 0.4669035 7.638469
3 allocVector_R1 0.308285 0.3912355 1.113137 0.4248760 0.4791795 7.625590
2 rep 1.126853 1.3289500 1.967328 1.4070430 1.5321590 10.030630
4 allocVector_R2 1.334786 1.4031215 2.820345 1.4552420 5.1149475 9.890856
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
3 allocVector_R1 1.042825 1.033921 1.059088 1.029819 1.026292 0.9983139
2 rep 3.811765 3.512024 1.871802 3.410406 3.281532 1.3131728
4 allocVector_R2 4.515132 3.708038 2.683401 3.527231 10.955042 1.2948741

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000000"]])
> str(value)
 num 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.632168 0.6591875 1.486444 0.6705945 2.472943 7.413477
2 rep 1.095766 1.2298460 1.836087 1.2723820 1.362015 7.886881
4 allocVector_R2 1.327035 1.3697150 3.008941 1.4180105 5.045395 8.010199
3 allocVector_R1 1.986027 2.2137430 3.007227 2.2749715 2.473757 9.414505
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.0000000 1.000000
2 rep 1.733346 1.865700 1.235222 1.897394 0.5507667 1.063857
4 allocVector_R2 2.099181 2.077884 2.024255 2.114557 2.0402389 1.080491
3 allocVector_R1 3.141613 3.358290 2.023102 3.392470 1.0003290 1.269918

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 1000000"]])
> str(value)
 num NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 0.642240 0.6611895 1.286497 0.671658 0.7239615 7.644119
2 rep 1.113877 1.2673480 1.963661 1.278311 1.4059975 9.011668
4 allocVector_R2 1.322725 1.3697685 2.327147 1.408396 1.4762055 8.902168
3 allocVector_R1 2.007035 2.2587050 6.273910 2.293862 2.4749530 333.149908
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.734363 1.916770 1.526362 1.903217 1.942089 1.178902
4 allocVector_R2 2.059549 2.071673 1.808901 2.096895 2.039066 1.164577
3 allocVector_R1 3.125055 3.416123 4.876738 3.415224 3.418625 43.582512

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 1000000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

n = 10000000 matrix

> n <- length(data[["n = 10000000"]])
> str(value)
 num 0
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000000+0 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 25.23340 25.79592 30.07851 25.93894 37.23915 41.25383
3 allocVector_R1 25.24707 25.81174 34.12057 26.01175 38.40659 367.32780
2 rep 31.19824 32.17893 44.82133 34.71728 44.19895 382.63226
4 allocVector_R2 56.31461 57.69006 68.05523 66.64490 69.04198 396.01130
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
3 allocVector_R1 1.000542 1.000613 1.134383 1.002807 1.031350 8.904090
2 rep 1.236387 1.247443 1.490144 1.338423 1.186895 9.275073
4 allocVector_R2 2.231749 2.236403 2.262586 2.569299 1.854016 9.599383

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000000+0 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000000"]])
> str(value)
 num 1
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000000+1 data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 23.76478 25.04440 36.15933 25.73830 35.88860 376.01751
2 rep 31.52511 33.11105 44.20774 34.20348 42.48701 385.53139
3 allocVector_R1 52.29072 54.85647 64.46291 63.58004 66.20788 391.70816
4 allocVector_R2 56.47837 63.21143 65.77525 66.77103 69.58766 74.25866
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.0000000
2 rep 1.326548 1.322094 1.222582 1.328894 1.183858 1.0253017
3 allocVector_R1 2.200346 2.190369 1.782746 2.470250 1.844816 1.0417285
4 allocVector_R2 2.376558 2.523974 1.819040 2.594228 1.938991 0.1974872

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000000+1 data. Outliers are displayed as crosses. Times are in milliseconds.

> n <- length(data[["n = 10000000"]])
> str(value)
 num NA
> stats <- microbenchmark(allocVector = allocVector(length = n, value = value), rep = rep(value, times = n), 
+     allocVector_R1 = allocVector_R1(length = n, value = value), allocVector_R2 = allocVector_R2(length = n, 
+         value = value), unit = "ms")

Table: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000000+NA data. The top panel shows times in milliseconds and the bottom panel shows relative times.

  expr min lq mean median uq max
1 allocVector 23.99955 25.62834 29.40072 26.25675 35.99857 41.97127
2 rep 31.14532 34.46510 42.75304 35.15820 46.00730 381.78028
3 allocVector_R1 52.27612 54.96357 66.91250 56.73542 66.76330 395.68549
4 allocVector_R2 56.58167 59.60112 66.55866 68.39408 71.06541 79.10422
  expr min lq mean median uq max
1 allocVector 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
2 rep 1.297746 1.344804 1.454149 1.339016 1.278031 9.096228
3 allocVector_R1 2.178213 2.144641 2.275880 2.160794 1.854610 9.427531
4 allocVector_R2 2.357614 2.325594 2.263845 2.604819 1.974117 1.884723

Figure: Benchmarking of allocVector(), rep(), allocVector_R1() and allocVector_R2() on double+n = 10000000+NA data. Outliers are displayed as crosses. Times are in milliseconds.

Appendix

Session information

R version 4.1.1 Patched (2021-08-10 r80727)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.5 LTS

Matrix products: default
BLAS:   /home/hb/software/R-devel/R-4-1-branch/lib/R/lib/libRblas.so
LAPACK: /home/hb/software/R-devel/R-4-1-branch/lib/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] microbenchmark_1.4-7   matrixStats_0.60.1     ggplot2_3.3.5         
[4] knitr_1.33             R.devices_2.17.0       R.utils_2.10.1        
[7] R.oo_1.24.0            R.methodsS3_1.8.1-9001 history_0.0.1-9000    

loaded via a namespace (and not attached):
 [1] Biobase_2.52.0          httr_1.4.2              splines_4.1.1          
 [4] bit64_4.0.5             network_1.17.1          assertthat_0.2.1       
 [7] highr_0.9               stats4_4.1.1            blob_1.2.2             
[10] GenomeInfoDbData_1.2.6  robustbase_0.93-8       pillar_1.6.2           
[13] RSQLite_2.2.8           lattice_0.20-44         glue_1.4.2             
[16] digest_0.6.27           XVector_0.32.0          colorspace_2.0-2       
[19] Matrix_1.3-4            XML_3.99-0.7            pkgconfig_2.0.3        
[22] zlibbioc_1.38.0         genefilter_1.74.0       purrr_0.3.4            
[25] ergm_4.1.2              xtable_1.8-4            scales_1.1.1           
[28] tibble_3.1.4            annotate_1.70.0         KEGGREST_1.32.0        
[31] farver_2.1.0            generics_0.1.0          IRanges_2.26.0         
[34] ellipsis_0.3.2          cachem_1.0.6            withr_2.4.2            
[37] BiocGenerics_0.38.0     mime_0.11               survival_3.2-13        
[40] magrittr_2.0.1          crayon_1.4.1            statnet.common_4.5.0   
[43] memoise_2.0.0           laeken_0.5.1            fansi_0.5.0            
[46] R.cache_0.15.0          MASS_7.3-54             R.rsp_0.44.0           
[49] progressr_0.8.0         tools_4.1.1             lifecycle_1.0.0        
[52] S4Vectors_0.30.0        trust_0.1-8             munsell_0.5.0          
[55] tabby_0.0.1-9001        AnnotationDbi_1.54.1    Biostrings_2.60.2      
[58] compiler_4.1.1          GenomeInfoDb_1.28.1     rlang_0.4.11           
[61] grid_4.1.1              RCurl_1.98-1.4          cwhmisc_6.6            
[64] rappdirs_0.3.3          startup_0.15.0          labeling_0.4.2         
[67] bitops_1.0-7            base64enc_0.1-3         boot_1.3-28            
[70] gtable_0.3.0            DBI_1.1.1               markdown_1.1           
[73] R6_2.5.1                lpSolveAPI_5.5.2.0-17.7 rle_0.9.2              
[76] dplyr_1.0.7             fastmap_1.1.0           bit_4.0.4              
[79] utf8_1.2.2              parallel_4.1.1          Rcpp_1.0.7             
[82] vctrs_0.3.8             png_0.1-7               DEoptimR_1.0-9         
[85] tidyselect_1.1.1        xfun_0.25               coda_0.19-4            

Total processing time was 2.29 mins.

Reproducibility

To reproduce this report, do:

html <- matrixStats:::benchmark('allocVector')

Copyright Henrik Bengtsson. Last updated on 2021-08-25 18:47:00 (+0200 UTC). Powered by RSP.