Avatar for the kamiazya user
kamiazya
web-csv-toolbox
BlogDocsChangelog

perf: JavaScript parser performance improvements

#614Merged
Comparing
pref-js
(
6926119
) with
main
(
8adf5d9
)
CodSpeed Performance Gauge
×4.2
Improvement
41
Untouched
24
Skipped
8

Benchmarks

73 total
parseString engine:stable (50 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×4.2
2,550.4 µs603 µs
Engine comparison: mainThread (500 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×3.6
30.9 ms8.6 ms
parseString.toArraySync(50 cols, 50 rows, quoted)
benchmark/main.ts
CodSpeed Performance Gauge
×3.6
18.6 ms5.2 ms
Line ending: CRLF (1000 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×3.4
18.5 ms5.5 ms
parseString.toArraySync(100 cols, 50 rows, quoted)
benchmark/main.ts
CodSpeed Performance Gauge
×3.4
37.2 ms11.1 ms
parseString.toArraySync(10 cols, 50 rows, quoted)
benchmark/main.ts
CodSpeed Performance Gauge
×3.2
3.7 ms1.2 ms
Low-level: CSVLexer only (1000 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×3
17.6 ms5.8 ms
parseString.toArraySync(100 cols, 50 rows, unquoted)
benchmark/main.ts
CodSpeed Performance Gauge
×2.9
20.1 ms6.8 ms
parseString.toArraySync(50 cols, 50 rows, unquoted)
benchmark/main.ts
CodSpeed Performance Gauge
×2.9
10.1 ms3.5 ms
parseString.toArraySync(10 cols, 50 rows, unquoted)
benchmark/main.ts
CodSpeed Performance Gauge
×2.6
2,133 µs822.9 µs
Data transformation: type conversion (100 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×2.4
3.2 ms1.4 ms
parseStringStream: medium (1000 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×2.1
171.4 ms81.4 ms
Stream approach: parseBinaryStream (100KB)
benchmark/main.ts
CodSpeed Performance Gauge
×2.1
346.1 ms164.7 ms
parseString.toArraySync(50 rows)
benchmark/main.ts
CodSpeed Performance Gauge
×2
2.7 ms1.3 ms
Data transformation: no conversion (100 rows)
benchmark/main.ts
CodSpeed Performance Gauge
+98%
2.6 ms1.3 ms
parseBinary.toArraySync(50 rows)
benchmark/main.ts
CodSpeed Performance Gauge
+98%
1,060.2 µs536.8 µs
Queuing: medium (1000 rows) - default HWM
benchmark/main.ts
CodSpeed Performance Gauge
+92%
256.5 ms133.4 ms
Scaling: 100 rows
benchmark/main.ts
CodSpeed Performance Gauge
+92%
2.9 ms1.5 ms
Binary approach: parseBinary (1MB)
benchmark/main.ts
CodSpeed Performance Gauge
+90%
369.9 ms195.2 ms
Scaling: 50 rows
benchmark/main.ts
CodSpeed Performance Gauge
+88%
1,522 µs810.1 µs
Low-level: CSVLexer + CSVRecordAssembler (1000 rows)
benchmark/main.ts
CodSpeed Performance Gauge
+87%
28.2 ms15.1 ms
parseString engine:stable (1000 rows)
benchmark/main.ts
CodSpeed Performance Gauge
+86%
19.9 ms10.7 ms
Memory: toIterableIterator (streaming)
benchmark/main.ts
CodSpeed Performance Gauge
+86%
28.1 ms15.2 ms
Memory: toArraySync (allocate all at once)
benchmark/main.ts
CodSpeed Performance Gauge
+85%
29.3 ms15.9 ms
Scaling: 1000 rows
benchmark/main.ts
CodSpeed Performance Gauge
+85%
29.5 ms16 ms

Commits

Click on a commit to change the comparison range
Base
main
8adf5d9
×5.1
style: format code
5dc9bbe
4 months ago
by kamiazya
fix: update test expectations for new parser behavior
09bfc64
4 months ago
by kamiazya
-36.03%
fix: change toStrictEqual to toEqual in browser tests
a2c5520
4 months ago
by kamiazya
+36.04%
style: format test files
5e6e690
4 months ago
by kamiazya
×4
feat(parser): enhance FlexibleStringCSVLexer with reusable array pooling
58e5d70
4 months ago
by kamiazya
Add record-view assembler and tighten column strategies
125c345
4 months ago
by kamiazya
-4.06%
feat: apply const type parameters consistently across all parser classes
e300438
4 months ago
by kamiazya
×5.2
fix: address code review comments
48f5d4f
4 months ago
by kamiazya
style: improve formatting of expected tokens in StringCSVLexerTransformer tests
19c01bd
4 months ago
by kamiazya
+37.97%
test: consolidate test files and improve coverage config
4395ef1
4 months ago
by kamiazya
×4.8
refactor: enhance comments and improve header handling in FlexibleCSVRecordAssembler tests
6926119
4 months ago
by kamiazya
© 2026 CodSpeed Technology
Home Terms Privacy Docs