Skip to content

Instantly share code, notes, and snippets.

@SimonCoulombe
Last active January 18, 2020 04:59
Show Gist options
  • Save SimonCoulombe/bc8d9f7a6313c085dfeab024d23dd0b7 to your computer and use it in GitHub Desktop.
Save SimonCoulombe/bc8d9f7a6313c085dfeab024d23dd0b7 to your computer and use it in GitHub Desktop.
library(tidyverse)
library(microbenchmark)
library(wakefield)
simulated_df <- r_data_frame(
n=10000000,
id,
r_series(race, 30, name = "myfactor" ),
r_series(dob, 30, name = "date"),
r_series(iq, 30, name = "double")
)
#write
bench_fwrite <- microbenchmark::microbenchmark(
data.table::fwrite(simulated_df, "simulated_df.csv"),
times= 1)
bench_write_rds <- microbenchmark::microbenchmark(
write_rds(simulated_df, "simulated_df.rds"),
times = 3)
bench_write_fst <- microbenchmark::microbenchmark(
fst::write_fst(simulated_df, "simulated_df.fst"),
times = 3)
bench_write_parquet <- microbenchmark::microbenchmark(
arrow::write_parquet(simulated_df, "simulated_df.parquet"),
times =3)
bench_qsave_default <- microbenchmark::microbenchmark(
qs::qsave(simulated_df, "simulated_df_default.qs",
nthreads = parallel::detectCores()),
times = 3)
bench_qsave_zstd_minus5 <- microbenchmark::microbenchmark(
qs::qsave(simulated_df, "simulated_df_ztsd_minus5.qs",
nthreads =parallel::detectCores(),
preset = "custom",
compress_level = -5),
times = 3)
bench_qsave_zstd_minus30 <- microbenchmark::microbenchmark(
qs::qsave(simulated_df, "simulated_df_ztsd_minus30.qs",
nthreads =parallel::detectCores(),
preset = "custom",
compress_level = -30),
times = 3)
bench_write_feather <- microbenchmark::microbenchmark(
feather::write_feather(simulated_df, "simulated_df.feather") ,
times = 3)
benches_write <- bind_rows(
bench_fwrite,
bench_write_rds,
bench_write_fst,
bench_write_parquet,
bench_qsave_default,
bench_qsave_zstd_minus5,
bench_qsave_zstd_minus30,
bench_write_feather
)
write_rds(benches_write, "benches_write.rds")
# read
bench_read_csv <-microbenchmark::microbenchmark(
read_csv("simulated_df.csv"), times = 1)
bench_fread <- microbenchmark::microbenchmark(
data.table::fread("simulated_df.csv"), times = 3)
bench_vroom <- microbenchmark::microbenchmark(
vroom::vroom("simulated_df.csv"), times=3)
bench_rds <- microbenchmark::microbenchmark(
readr::read_rds("simulated_df.rds"), times = 5)
bench_fst <- microbenchmark::microbenchmark(
fst::read_fst("simulated_df.fst"), times = 10)
bench_parquet <- microbenchmark::microbenchmark(
arrow::read_parquet("simulated_df.parquet"), times = 10)
bench_qs_default <- microbenchmark::microbenchmark(
qs::qread("simulated_df_default.qs", nthreads = parallel::detectCores()), times=10)
bench_qs_ztsd_minus5 <- microbenchmark::microbenchmark(
qs::qread("simulated_df_ztsd_minus5.qs", nthreads = parallel::detectCores()), times=10)
bench_qs_ztsd_minus30 <- microbenchmark::microbenchmark(
qs::qread("simulated_df_ztsd_minus30.qs", nthreads = parallel::detectCores()), times=10)
bench_feather <- microbenchmark::microbenchmark(
feather::read_feather("simulated_df.feather"), times=10)
benches_read <-dplyr::bind_rows(
bench_read_csv,
bench_fread,
bench_fst,
bench_rds,
bench_vroom,
bench_parquet,
bench_qs_default,
bench_qs_ztsd_minus5,
bench_qs_ztsd_minus30,
bench_feather)
write_rds(benches_read, "benches_read.rds")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment