Articles

ColdFusion CSV Processing Speed Test Results: October 2025

Image about ColdFusion CSV Processing Speed Test Results: October 2025
October 23, 2025

Here's a quick summary of the CSV Speed Test results after performing ~10 executions per method.  (NOTE: Smaller is better.)

For all java-based tests, when iterating over the CSV data, new States were added to a struct with an array with 2 elements, count and subtotal, and then increased with each row's data.

The CSV file used for testing is the 150mb "fraudTest.csv" from the Kaggle Credit Card Transactions Fraud Detection Dataset.  All tests were performed using CommandBox with a ColdFusion 2025,0,04,331512 server with Java 24.0.2 running on a Windows 11 laptop.

More background regarding this test can be found here.

Image of Csv perf dist 20251023

Analysis

  • DuckDB and OctoSQL are significantly faster (sub-second range) compared to others.
  • LuceeSpreadsheet has the highest durations, peaking near 18 seconds.
  • csvprocess_2025 and csvread_2025 show moderate performance but with noticeable variability.
  • OpenCSV5 and its builder variant have mid-range times, but the builder variant shows occasional spikes (e.g., >5 seconds).
  • SpreadsheetCFML variants are slower than OpenCSV but faster than LuceeSpreadsheet.


OctoSQL 0.13.0

https://github.com/cube2222/octosql

This is a command line tool. This portable executable was released in 2019 and supports Linux, Mac & Windows. For text files, it supports SON (in JSONLines format, one object per line), CSV, TSV, Parquet & Lines (reading a file line by line). Additional plugins can be installed to provide support for PostgreSQL or MySQL. MPL 2.0 License

The command line was simple and worked the first time I tried it:

octosql.exe "SELECT state, COUNT(*), AVG(amt) FROM `c:\data.csv` GROUP BY state" --output csv > c:\output.csv

DuckDB 1.4.1

https://duckdb.org/

This is a command line tool. This portable executable was released in 2019 and supports Linux, Mac & Windows. For text files, it supports CSV, Parquet, JSON & data lake formats. It can also connect to network and cloud storage. It uses parallel execution and can process larger-than-memory workloads. It has zero dependencies, so it can be installed in seconds and deployed in milliseconds.  MIT License.

The command line was simple and worked the first time I tried it:

duckdb.exe --json -c "SELECT state, COUNT(*) AS count, AVG(amt) AS amt_avg FROM read_csv_auto('c:\data.csv', header=true) GROUP BY state ORDER BY state"


OpenCSV 5.12.0 Using CSVReader Class

https://opencsv.sourceforge.net/

Opencsv is an easy-to-use CSV (comma-separated values) parser library for Java. It was developed because all the CSV parsers at the time didn't have commercial-friendly licenses. Java 8 is currently the minimum supported version.  It supports all the basic CSV-type things you're likely to want to do: Arbitrary numbers of values per line, ignoring commas in quoted elements, handling quoted entries with embedded carriage returns (i.e. entries that span multiple lines) and configurable separator and quote characters (or use sensible defaults).

OpenCSV 5.12.0: Using CSVReaderBuilder Class

https://opencsv.sourceforge.net/

CSVReaderBuilder was used in all the examples on the project's website, but it isn't required.  I included it in case there was any performance difference.

Spreadsheet-CFML 3.12.0: csvToQuery() w/QoQ

https://github.com/cfsimplicity/spreadsheet-cfml/releases/tag/v3.12.0

This is the version that still works with ColdFusion 2016 (which I still support) and uses POI 5.2.5.  This approach was slow as it had to read the CSV file into a query object and then a query-of-queries was performed and this extra step often took ~3 seconds using ColdFusion 2025.

Spreadsheet-CFML 5.2.0: ReadCSV

https://github.com/cfsimplicity/spreadsheet-cfml/releases/tag/v5.2.0

More information

 

Spreadsheet-CFML 5.2.0: ReadCSV w/Closure

More information

 

ColdFusion 2025,0,04,331512 CSVRead

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-c-d/csvread.html

 

ColdFusion 2025,0,04,331512 CSVProcess

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-c-d/csvprocess.html