Skip to content

Instantly share code, notes, and snippets.

@njtierney
Created June 13, 2025 03:42
Show Gist options
  • Save njtierney/a6a26b1b104c9992f1e7e776846340d0 to your computer and use it in GitHub Desktop.
Save njtierney/a6a26b1b104c9992f1e7e776846340d0 to your computer and use it in GitHub Desktop.
library(purrr)
set.seed(2020)
means <- 1:4
bp <- bench::press(
  n = c(100, 1000, 10000, 100000),
  {
    bench::mark(
  map = {set.seed(2020);  map(means, rnorm, n = n, sd = 1)},
  lapply = {set.seed(2020); lapply(means, rnorm, n = n, sd = 1)}
    )
  }
)
#> Running with:
#>        n
#> 1    100
#> 2   1000
#> 3  10000
#> 4 100000

bp
#> # A tibble: 8 × 7
#>   expression      n      min   median `itr/sec` mem_alloc `gc/sec`
#>   <bch:expr>  <dbl> <bch:tm> <bch:tm>     <dbl> <bch:byt>    <dbl>
#> 1 map           100   20.3µs  21.57µs    45540.  117.62KB    27.3 
#> 2 lapply        100  11.85µs  12.51µs    45136.    3.31KB     9.03
#> 3 map          1000  89.58µs   92.7µs    10703.   31.44KB     6.09
#> 4 lapply       1000  81.06µs  83.84µs    10657.   31.44KB     6.19
#> 5 map         10000 785.11µs 812.89µs      568.  312.69KB     3.94
#> 6 lapply      10000 778.79µs 866.37µs      889.  312.69KB     4.11
#> 7 map        100000   7.73ms   8.27ms      116.    3.05MB     8.59
#> 8 lapply     100000    7.8ms   8.24ms      120.    3.05MB    18.8
plot(bp)

Created on 2025-06-13 with reprex v2.1.1

Session info

sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.5.0 (2025-04-11)
#>  os       macOS Sonoma 14.5
#>  system   aarch64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Hobart
#>  date     2025-06-13
#>  pandoc   3.6.3 @ /Applications/Positron.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
#>  quarto   1.7.31 @ /usr/local/bin/quarto
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package      * version    date (UTC) lib source
#>  beeswarm       0.4.0      2021-06-01 [1] CRAN (R 4.5.0)
#>  bench          1.1.4      2025-01-16 [1] CRAN (R 4.5.0)
#>  cli            3.6.5      2025-04-23 [1] CRAN (R 4.5.0)
#>  curl           6.2.2      2025-03-24 [1] CRAN (R 4.5.0)
#>  digest         0.6.37     2024-08-19 [1] CRAN (R 4.5.0)
#>  dplyr          1.1.4      2023-11-17 [1] CRAN (R 4.5.0)
#>  evaluate       1.0.3      2025-01-10 [1] CRAN (R 4.5.0)
#>  farver         2.1.2      2024-05-13 [1] CRAN (R 4.5.0)
#>  fastmap        1.2.0      2024-05-15 [1] CRAN (R 4.5.0)
#>  fs             1.6.6      2025-04-12 [1] CRAN (R 4.5.0)
#>  generics       0.1.4      2025-05-09 [1] CRAN (R 4.5.0)
#>  ggbeeswarm     0.7.2      2023-04-29 [1] CRAN (R 4.5.0)
#>  ggplot2        3.5.2      2025-04-09 [1] CRAN (R 4.5.0)
#>  glue           1.8.0      2024-09-30 [1] CRAN (R 4.5.0)
#>  gtable         0.3.6      2024-10-25 [1] CRAN (R 4.5.0)
#>  htmltools      0.5.8.1    2024-04-04 [1] CRAN (R 4.5.0)
#>  knitr          1.50       2025-03-16 [1] CRAN (R 4.5.0)
#>  lifecycle      1.0.4      2023-11-07 [1] CRAN (R 4.5.0)
#>  magrittr       2.0.3      2022-03-30 [1] CRAN (R 4.5.0)
#>  pillar         1.10.2     2025-04-05 [1] CRAN (R 4.5.0)
#>  pkgconfig      2.0.3      2019-09-22 [1] CRAN (R 4.5.0)
#>  profmem        0.6.0      2020-12-13 [1] CRAN (R 4.5.0)
#>  purrr        * 1.0.4.9000 2025-05-04 [1] Github (tidyverse/purrr@9c8beb4)
#>  R6             2.6.1      2025-02-15 [1] CRAN (R 4.5.0)
#>  RColorBrewer   1.1-3      2022-04-03 [1] CRAN (R 4.5.0)
#>  reprex         2.1.1      2024-07-06 [1] CRAN (R 4.5.0)
#>  rlang          1.1.6      2025-04-11 [1] CRAN (R 4.5.0)
#>  rmarkdown      2.29       2024-11-04 [1] CRAN (R 4.5.0)
#>  scales         1.4.0      2025-04-24 [1] CRAN (R 4.5.0)
#>  sessioninfo    1.2.3      2025-02-05 [1] CRAN (R 4.5.0)
#>  tibble         3.2.1      2023-03-20 [1] CRAN (R 4.5.0)
#>  tidyr          1.3.1      2024-01-24 [1] CRAN (R 4.5.0)
#>  tidyselect     1.2.1      2024-03-11 [1] CRAN (R 4.5.0)
#>  utf8           1.2.5      2025-05-01 [1] CRAN (R 4.5.0)
#>  vctrs          0.6.5      2023-12-01 [1] CRAN (R 4.5.0)
#>  vipor          0.4.7      2023-12-18 [1] CRAN (R 4.5.0)
#>  withr          3.0.2      2024-10-28 [1] CRAN (R 4.5.0)
#>  xfun           0.52       2025-04-02 [1] CRAN (R 4.5.0)
#>  xml2           1.3.8      2025-03-14 [1] CRAN (R 4.5.0)
#>  yaml           2.3.10     2024-07-26 [1] CRAN (R 4.5.0)
#> 
#>  [1] /Users/nick_1/Library/R/arm64/4.5/library
#>  [2] /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/library
#>  * ── Packages attached to the search path.
#> 
#> ──────────────────────────────────────────────────────────────────────────────
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment