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
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.
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.
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.
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.
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.
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
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