klmr / box

Write reusable, composable and modular R code
https://klmr.me/box/
MIT License
862 stars 48 forks source link

Benchmark different operations in ‘box’ #265

Open klmr opened 2 years ago

klmr commented 2 years ago

As discussed in #262, there should be a suite of benchmarks of different operations, and how they compare to equivalent base R operations. The results should be published as a vignette.

Measure performance of …

  1. box::use(pkg)
    1. When ‘pkg’ is already loaded
    2. When ‘pkg’ isn’t loaded
    3. When ‘pkg’ isn’t loaded, but its dependencies are
  2. box::use(pkg[...])
    1. When ‘pkg’ is already loaded
    2. When ‘pkg’ isn’t loaded
    3. When ‘pkg’ isn’t loaded, but its dependencies are
  3. library(pkg)
    1. When ‘pkg’ is already loaded
    2. When ‘pkg’ isn’t loaded
    3. When ‘pkg’ isn’t loaded, but its dependencies are
  4. box::use(./mod)
    1. When ./mod is already loaded
    2. When ./mod isn’t loaded
    3. When ./mod isn’t loaded, but its dependencies are
  5. box::use(path/to/mod)
    1. When ./mod is already loaded
    2. When ./mod isn’t loaded
    3. When ./mod isn’t loaded, but its dependencies are
  6. box::use(./mod[...])
    1. When ./mod is already loaded
    2. When ./mod isn’t loaded
    3. When ./mod isn’t loaded, but its dependencies are

And …

  1. mod$name
  2. name, for an attached name
    1. Locally, in the same environment
    2. Locally, in the parent environment
    3. In the global search path