Comparer des performances DuckDB/arrow

R
benchmark
Comment évaluer la mémoire et le CPU de traitements long en duckdb/arrow
Auteur·rice

Nicolas Chuche

Date de publication

10 juillet 2025

Quand il s’agit de comparer des façons de faire, l’idéal est de lancer le code dans des outils de benchmarks mais les outils “classiques” de R ne sont pas adaptés à la comparaison de code duckdb et/ou arrow :

Dans mes articles, j’utiliserais régulièrement timemoir écrit exprès pour ce genre de comparatifs :

library(timemoir)

test_function <- function(n) {
  x <- rnorm(n); mean(x)
}

res <- timemoir(
  test_function(1.2e7),
  test_function(4e7),
  test_function(1e8)
)
res |> 
  kableExtra::kable()
fname duration error start_mem max_mem cpu_user cpu_sys
test_function(1.2e+07) 0.666 NA 110088 200888 0.619 0.048
test_function(4e+07) 1.979 NA 110088 423768 1.861 0.116
test_function(1e+08) 3.376 NA 109364 892536 3.239 0.136
plot(res)


Cela dit il ne s’agit pas de “vrais” benchmarks rigoureux, bien au delà des objectifs de ce blog mais de comparaisons rapides, destinées à se faire une idée approximative des performances relatives.

devtools::session_info(pkgs = "attached")
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.0 (2025-04-11)
 os       Ubuntu 22.04.5 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Etc/UTC
 date     2025-07-14
 pandoc   3.7.0.2 @ /usr/bin/ (via rmarkdown)
 quarto   1.7.31 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package  * version    date (UTC) lib source
 timemoir * 0.7.0.9000 2025-07-14 [1] Github (nbc/timemoir@01b6674)

 [1] /usr/local/lib/R/site-library
 [2] /usr/local/lib/R/library
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────
Retour au sommet