For the complete documentation index, see llms.txt. This page is also available as Markdown.

Performance Benchmarks

See how CSVBox performs with different file sizes, row counts, and validation workloads.

Please see the following tables for CSVBox performance benchmarks. Benchmarks last run: 24 August 2026.

One run per size, there is no variance figure here. Treat each number as a single observation, not a median. Column count moves timing more than file size does.

Test Environment

A mid-range consumer laptop on office Wi-Fi — deliberately unexceptional hardware, so these numbers read as a realistic floor rather than a best case.

Device

Model

ASUS VivoBook X515DA

CPU

AMD Ryzen 5 3500U

Graphics

Radeon Vega Mobile

Cores

4 physical / 8 logical

Base clock

2.10 GHz

Memory

17.95 GB

OS

Windows 11 Enterprise (Build 10.0.22631, 64-bit)

Browser

Chrome 151.0.7922.173

Network

Upload

33.2 Mbps (4.15 MB/s)

Importer Sheet

Columns

3

col1

Number

col2

Email

col3

Date

Validation

Column type rules

Transform

1 function, on col2

Virtual cols

None

Source file

12 columns

File Parse

Time to read and parse the source CSV file.

Rows
Duration
Per row
Throughput

100k

406 ms

4.06 µs

246.3k rows/sec

500k

1.4 s

2.79 µs

357.9k rows/sec

1M

3.2 s

3.19 µs

313.1k rows/sec

2M

5.6 s

2.78 µs

359.3k rows/sec

Validation

Time to validate all rows against the target schema.

Rows
Duration
Per row
Throughput

100k

583 ms

5.83 µs

171.5k rows/sec

500k

7.3 s

14.55 µs

68.7k rows/sec

1M

17.7 s

17.73 µs

56.4k rows/sec

2M

38.1 s

19.04 µs

52.5k rows/sec

Transformation

Time to apply configured transforms to all rows.

Rows
Duration
Per row
Throughput

100k

188 ms

1.88 µs

531.9k rows/sec

500k

873 ms

1.75 µs

572.7k rows/sec

1M

1.6 s

1.59 µs

627.0k rows/sec

2M

6.1 s

3.05 µs

327.5k rows/sec

Destination Upload

Time to deliver the processed rows to the destination.

Rows
Duration
Per row
Throughput

100k

8.1 s

81.02 µs

12.3k rows/sec

500k

29.3 s

58.62 µs

17.1k rows/sec

1M

51.2 s

51.22 µs

19.5k rows/sec

2M

100.6 s

50.29 µs

19.9k rows/sec

End to End

Total time from upload start to completed import.

Rows
Duration
Per row
Throughput

100k

9.3 s

92.78 µs

10.8k rows/sec

500k

38.9 s

77.70 µs

12.9k rows/sec

1M

73.7 s

73.75 µs

13.6k rows/sec

2M

150.3 s

75.17 µs

13.3k rows/sec

Reproducing the Run

The sheet was configured with three columns typed Number, Email, and Date, and a single data-transform function applied to col2. The transform is intentionally trivial — one string coercion and an uppercase — so the transform timings measure the pipeline's per-row dispatch overhead, not the cost of a user's own logic. This is the exact function that produced the transformation numbers above.

Data transform function · col2

js const helper = (value) => { return String(value).toUpperCase(); }; csvbox.row["col2"] = helper(csvbox.row["col2"]); return csvbox; ​

Source datasets

Dataset
Rows
File size (MB)
Payload sent (MB)
Bytes/row

customers-100000.csv

100,000

17.32

5.40

173

customers-500000.csv

500,000

87.03

27.85

174

customers-1000000.csv

1,000,000

174.16

55.90

174

customers-2000000.csv

2,000,000

349.42

113.92

175

Source CSVs carry 12 columns (Index, Customer Id, First Name, Last Name, Company, City, Country, Phone 1, Phone 2, Email, Subscription Date, Website), of which three were mapped into the sheet for the run. File sizes are decimal MB (10⁶ bytes).

Last updated