## Microbenchmarking
library(crayon)
source("./.dev/helpers-microbenchmark.R")
## Context (should match testthat context)
context <- "bar"
# Boolean to decide if we overwrite old results. Overwrite before
# merging new feature. Will get overwritten by allOverwrite if running
# from microbenchmark-all.R
overwrite <- F
if (exists("allOverwrite")) {
overwrite <- allOverwrite
}
# Prepare dt
results_dt <- data.table()
# Load in allResults dt
allResults <- readRDS(file = "./.dev/benchmarks.rds")
## Test 1
name <- "facet1 facet2 count"
# Prep
map <- data.frame('id' = c('group', 'x', 'panel'), 'plotRef' = c('facetVariable2', 'xAxisVariable', 'facetVariable1'), 'dataType' = c('STRING', 'STRING', 'STRING'), stringsAsFactors=FALSE)
df <- as.data.frame(data.binned)
# Benchmark
results <- microbenchmark::microbenchmark(
bar.dt(df, map, value='count'),
unit = 'ms'
) %>% summary()
# Print diff from saved result
previousResult <- allResults[benchmarkContext == context & benchmarkName == name]
compareToPrevious(results, previousResult, context, name)
results_dt <- rbind(results_dt, cbind('benchmarkContext'=context, 'benchmarkName'=name, results))
## Test 2
name <- "overlay count"
# Prep
map <- data.frame('id' = c('group', 'x'), 'plotRef' = c('overlayVariable', 'xAxisVariable'), 'dataType' = c('STRING', 'STRING'), stringsAsFactors=FALSE)
# Benchmark
results <- microbenchmark::microbenchmark(
bar.dt(df, map, value='count'),
unit = 'ms'
) %>% summary()
# Print diff from saved result
previousResult <- allResults[benchmarkContext == context & benchmarkName == name]
compareToPrevious(results, previousResult, context, name)
results_dt <- rbind(results_dt, cbind('benchmarkContext'=context, 'benchmarkName'=name, results))
## Updating logged results
# If overwrite == T, replace saved times
if (overwrite) {
cat(magenta("Overwriting previously saved benchmark times... \n \n"))
# Remove all data from current context
allResults <- allResults[benchmarkContext != context]
# Add new results and save
allResults <- rbind(allResults,results_dt)
saveRDS(allResults, "./.dev/benchmarks.rds")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.