Java CSV library benchmark suite

June 23, 2025 ยท View on GitHub

This benchmark project was created for the development of FastCSV.

The benchmarks were written with JMH.

Compile and execute tests

./gradlew jmh --no-daemon --console plain

Results

LibraryRead (rec/sec)Write (rec/sec)DependenciesSize (KiB)
Commons CSV4,108,3565,334,464yes948
FastCSV13,151,56519,810,960no90
Jackson CSV8,216,6759,474,974yes2,385
Java CSV4,951,4251,045,290no13
Opencsv3,378,0214,146,190yes2,767
picocsv17,118,38217,901,064no23
Sfm+ASM13,748,0573,328,511yes1,536
Sfm-ASM10,834,6833,328,511yes1,536
Super CSV1,774,1333,579,853no96
Univocity7,436,48011,052,394no437

Results for multi-character field separator

LibraryRead (rec/sec)
FastCSV11,122,528
Univocity6,482,301

Library details

  • Commons CSV 1.13.0
  • FastCSV 4.0.0
  • Jackson CSV 2.18.3
  • Java CSV 2.0
  • Opencsv 5.10
  • picocsv 2.5.1
  • Sfm (SimpleFlatMapper) 9.0.2 (w/ and w/o ASM bytecode manipulation)
  • Super CSV 2.4.0
  • Univocity 2.9.1

Environment

  • Apple M4 Pro
  • macOS 15.5
  • OpenJDK 64-Bit Server VM Temurin-21.0.7+6 (build 21.0.7+6-LTS, mixed mode, sharing)
  • JMH 1.37