cisv 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,658 @@
1
+ ## BEFORE
2
+
3
+ $ bash ./benchmark_cli_reader.sh
4
+ === CSV CLI Tools Benchmark ===
5
+
6
+ Generating test files...
7
+ Creating small.csv (1K rows)...
8
+ Creating medium.csv (100K rows)...
9
+ Creating large.csv (1M rows)...
10
+ Creating xlarge.csv (10M rows)...
11
+
12
+ Test files created:
13
+ -rw-rw-r-- 1 dk dk 98M Aug 7 23:47 large.csv
14
+ -rw-rw-r-- 1 dk dk 9.2M Aug 7 23:47 medium.csv
15
+ -rw-rw-r-- 1 dk dk 84K Aug 7 23:47 small.csv
16
+ -rw-rw-r-- 1 dk dk 36 Jul 29 23:43 test.csv
17
+ -rw-rw-r-- 1 dk dk 1.1G Aug 7 23:48 xlarge.csv
18
+
19
+ === Testing with small.csv ===
20
+
21
+ Row counting test:
22
+
23
+ --- cisv ---
24
+ Time: .003454255 seconds
25
+ Memory: 3444 KB
26
+ --- wc -l (baseline) ---
27
+ Time: .003698894 seconds
28
+ Memory: 3276 KB
29
+ --- rust-csv (Rust library) ---
30
+ Time: .005211807 seconds
31
+ Memory: 3268 KB
32
+ --- xsv (Rust CLI) ---
33
+ Time: .019139847 seconds
34
+ Memory: 5744 KB
35
+ qsv (faster xsv fork): Not installed
36
+
37
+ --- csvkit (Python) ---
38
+ Time: .389906267 seconds
39
+ Memory: 25604 KB
40
+ --- miller ---
41
+ Time: .005465541 seconds
42
+ Memory: 3404 KB
43
+ Column selection test (columns 0,2,3):
44
+
45
+ --- cisv ---
46
+ Time: .005140956 seconds
47
+ Memory: 3348 KB
48
+ --- rust-csv ---
49
+ Time: .004899935 seconds
50
+ Memory: 3160 KB
51
+ --- xsv ---
52
+ Time: .015615774 seconds
53
+ Memory: 5732 KB
54
+ qsv: Not installed
55
+
56
+ --- csvkit ---
57
+ Time: .370897805 seconds
58
+ Memory: 25080 KB
59
+ --- miller ---
60
+ Time: .008411697 seconds
61
+ Memory: 3308 KB
62
+ ==================================================
63
+
64
+ === Testing with medium.csv ===
65
+
66
+ Row counting test:
67
+
68
+ --- cisv ---
69
+ Time: .012855018 seconds
70
+ Memory: 8696 KB
71
+ --- wc -l (baseline) ---
72
+ Time: .010436686 seconds
73
+ Memory: 3356 KB
74
+ --- rust-csv (Rust library) ---
75
+ Time: .076268404 seconds
76
+ Memory: 3312 KB
77
+ --- xsv (Rust CLI) ---
78
+ Time: .063432975 seconds
79
+ Memory: 5780 KB
80
+ qsv (faster xsv fork): Not installed
81
+
82
+ --- csvkit (Python) ---
83
+ Time: 1.002472719 seconds
84
+ Memory: 80992 KB
85
+ --- miller ---
86
+ Time: .003949264 seconds
87
+ Memory: 3484 KB
88
+ Column selection test (columns 0,2,3):
89
+
90
+ --- cisv ---
91
+ Time: .194812322 seconds
92
+ Memory: 8456 KB
93
+ --- rust-csv ---
94
+ Time: .107812861 seconds
95
+ Memory: 3320 KB
96
+ --- xsv ---
97
+ Time: .084669622 seconds
98
+ Memory: 5704 KB
99
+ qsv: Not installed
100
+
101
+ --- csvkit ---
102
+ Time: 1.388574721 seconds
103
+ Memory: 24992 KB
104
+ --- miller ---
105
+ Time: .401692577 seconds
106
+ Memory: 11896 KB
107
+ ==================================================
108
+
109
+ === Testing with large.csv ===
110
+
111
+ Row counting test:
112
+
113
+ --- cisv ---
114
+ Time: .113134726 seconds
115
+ Memory: 97344 KB
116
+ --- wc -l (baseline) ---
117
+ Time: .081953593 seconds
118
+ Memory: 3328 KB
119
+ --- rust-csv (Rust library) ---
120
+ Time: .867276385 seconds
121
+ Memory: 3452 KB
122
+ --- xsv (Rust CLI) ---
123
+ Time: .563000612 seconds
124
+ Memory: 5896 KB
125
+ qsv (faster xsv fork): Not installed
126
+
127
+ --- csvkit (Python) ---
128
+ Time: 9.668958975 seconds
129
+ Memory: 582168 KB
130
+ --- miller ---
131
+ Time: .004417748 seconds
132
+ Memory: 3420 KB
133
+ Column selection test (columns 0,2,3):
134
+
135
+ --- cisv ---
136
+ Time: 1.856142346 seconds
137
+ Memory: 101416 KB
138
+ --- rust-csv ---
139
+ Time: 1.064498714 seconds
140
+ Memory: 3308 KB
141
+ --- xsv ---
142
+ Time: .745167991 seconds
143
+ Memory: 5776 KB
144
+ qsv: Not installed
145
+
146
+ --- csvkit ---
147
+ Time: 11.481508682 seconds
148
+ Memory: 24976 KB
149
+ --- miller ---
150
+ Time: 3.587480127 seconds
151
+ Memory: 102560 KB
152
+ ==================================================
153
+
154
+ === Testing with xlarge.csv (limited tools) ===
155
+
156
+ Row counting test:
157
+
158
+ --- cisv ---
159
+ Time: 1.027678668 seconds
160
+ Memory: 1056188 KB
161
+ --- wc -l (baseline) ---
162
+ Time: .735034280 seconds
163
+ Memory: 3244 KB
164
+ Column selection test (columns 0,2,3):
165
+
166
+ --- cisv ---
167
+ Time: 19.634665027 seconds
168
+ Memory: 1060368 KB
169
+ ==================================================
170
+
171
+ === CISV Benchmark Mode ===
172
+
173
+ small.csv:
174
+ Benchmarking file: small.csv
175
+ File size: 0.08 MB
176
+
177
+ Run 1: 0.06 ms, 1001 rows
178
+ Run 2: 0.04 ms, 1001 rows
179
+ Run 3: 0.03 ms, 1001 rows
180
+ Run 4: 0.03 ms, 1001 rows
181
+ Run 5: 0.03 ms, 1001 rows
182
+
183
+ medium.csv:
184
+ Benchmarking file: medium.csv
185
+ File size: 9.20 MB
186
+
187
+ Run 1: 4.10 ms, 100001 rows
188
+ Run 2: 3.89 ms, 100001 rows
189
+ Run 3: 4.05 ms, 100001 rows
190
+ Run 4: 3.94 ms, 100001 rows
191
+ Run 5: 3.15 ms, 100001 rows
192
+
193
+ large.csv:
194
+ Benchmarking file: large.csv
195
+ File size: 97.70 MB
196
+
197
+ Run 1: 33.20 ms, 1000001 rows
198
+ Run 2: 32.19 ms, 1000001 rows
199
+ Run 3: 31.98 ms, 1000001 rows
200
+ Run 4: 31.93 ms, 1000001 rows
201
+ Run 5: 31.94 ms, 1000001 rows
202
+
203
+ xlarge.csv:
204
+ Benchmarking file: xlarge.csv
205
+ File size: 1034.18 MB
206
+
207
+ Run 1: 329.84 ms, 10000001 rows
208
+ Run 2: 323.77 ms, 10000001 rows
209
+ Run 3: 359.50 ms, 10000001 rows
210
+ Run 4: 375.55 ms, 10000001 rows
211
+ Run 5: 324.35 ms, 10000001 rows
212
+
213
+ Cleaning up test files...
214
+ Benchmark complete!
215
+
216
+ ## AFTER
217
+
218
+ $ bash ./benchmark_cli_reader.sh
219
+ === CSV CLI Tools Benchmark === Generating test files...
220
+ Creating small.csv (1K rows)...
221
+ Creating medium.csv (100K rows)...
222
+ Creating large.csv (1M rows)...
223
+ Creating xlarge.csv (10M rows)...
224
+
225
+ Test files created:
226
+ -rw-rw-r-- 1 dk dk 98M Aug 8 00:01 large.csv
227
+ -rw-rw-r-- 1 dk dk 9.2M Aug 8 00:00 medium.csv
228
+ -rw-rw-r-- 1 dk dk 84K Aug 8 00:00 small.csv
229
+ -rw-rw-r-- 1 dk dk 36 Jul 29 23:43 test.csv
230
+ -rw-rw-r-- 1 dk dk 1.1G Aug 8 00:01 xlarge.csv
231
+
232
+ === Testing with small.csv ===
233
+
234
+ Row counting test:
235
+
236
+ --- cisv ---
237
+ Time: .004275249 seconds
238
+ Memory: 3388 KB
239
+ --- wc -l (baseline) ---
240
+ Time: .003821359 seconds
241
+ Memory: 3384 KB
242
+ --- rust-csv (Rust library) ---
243
+ Time: .005872746 seconds
244
+ Memory: 3252 KB
245
+ --- xsv (Rust CLI) ---
246
+ Time: .018956288 seconds
247
+ Memory: 5740 KB
248
+ qsv (faster xsv fork): Not installed
249
+
250
+ --- csvkit (Python) ---
251
+ Time: .324120841 seconds
252
+ Memory: 25556 KB
253
+ --- miller ---
254
+ Time: .003103605 seconds
255
+ Memory: 3280 KB
256
+ Column selection test (columns 0,2,3):
257
+
258
+ --- cisv ---
259
+ Time: .005032685 seconds
260
+ Memory: 3280 KB
261
+ --- rust-csv ---
262
+ Time: .004845613 seconds
263
+ Memory: 3332 KB
264
+ --- xsv ---
265
+ Time: .014999463 seconds
266
+ Memory: 5888 KB
267
+ qsv: Not installed
268
+
269
+ --- csvkit ---
270
+ Time: .327290599 seconds
271
+ Memory: 24888 KB
272
+ --- miller ---
273
+ Time: .006923448 seconds
274
+ Memory: 3356 KB
275
+ ==================================================
276
+
277
+ === Testing with medium.csv ===
278
+
279
+ Row counting test:
280
+
281
+ --- cisv ---
282
+ Time: .008108207 seconds
283
+ Memory: 8656 KB
284
+ --- wc -l (baseline) ---
285
+ Time: .010016111 seconds
286
+ Memory: 3432 KB
287
+ --- rust-csv (Rust library) ---
288
+ Time: .074509915 seconds
289
+ Memory: 3408 KB
290
+ --- xsv (Rust CLI) ---
291
+ Time: .053966146 seconds
292
+ Memory: 5704 KB
293
+ qsv (faster xsv fork): Not installed
294
+
295
+ --- csvkit (Python) ---
296
+ Time: .913265702 seconds
297
+ Memory: 81048 KB
298
+ --- miller ---
299
+ Time: .003564636 seconds
300
+ Memory: 3376 KB
301
+ Column selection test (columns 0,2,3):
302
+
303
+ --- cisv ---
304
+ Time: .135671992 seconds
305
+ Memory: 22716 KB
306
+ --- rust-csv ---
307
+ Time: .093014675 seconds
308
+ Memory: 3344 KB
309
+ --- xsv ---
310
+ Time: .073360775 seconds
311
+ Memory: 5720 KB
312
+ qsv: Not installed
313
+
314
+ --- csvkit ---
315
+ Time: 1.184642626 seconds
316
+ Memory: 24916 KB
317
+ --- miller ---
318
+ Time: .312788023 seconds
319
+ Memory: 11888 KB
320
+ ==================================================
321
+
322
+ === Testing with large.csv ===
323
+
324
+ Row counting test:
325
+
326
+ --- cisv ---
327
+ Time: .055322179 seconds
328
+ Memory: 97356 KB
329
+ --- wc -l (baseline) ---
330
+ Time: .083222782 seconds
331
+ Memory: 3340 KB
332
+ --- rust-csv (Rust library) ---
333
+ Time: .664236076 seconds
334
+ Memory: 3424 KB
335
+ --- xsv (Rust CLI) ---
336
+ Time: .441226534 seconds
337
+ Memory: 5648 KB
338
+ qsv (faster xsv fork): Not installed
339
+
340
+ --- csvkit (Python) ---
341
+ Time: 9.787511258 seconds
342
+ Memory: 582200 KB
343
+ --- miller ---
344
+ Time: .003772011 seconds
345
+ Memory: 3152 KB
346
+ Column selection test (columns 0,2,3):
347
+
348
+ --- cisv ---
349
+ Time: 1.370785745 seconds
350
+ Memory: 218840 KB
351
+ --- rust-csv ---
352
+ Time: .932174528 seconds
353
+ Memory: 3272 KB
354
+ --- xsv ---
355
+ Time: .654072621 seconds
356
+ Memory: 5880 KB
357
+ qsv: Not installed
358
+
359
+ --- csvkit ---
360
+ Time: 9.656998755 seconds
361
+ Memory: 25020 KB
362
+ --- miller ---
363
+ Time: 3.237759447 seconds
364
+ Memory: 102540 KB
365
+ ==================================================
366
+
367
+ === Testing with xlarge.csv (limited tools) ===
368
+
369
+ Row counting test:
370
+
371
+ --- cisv ---
372
+ Time: .590418509 seconds
373
+ Memory: 1056268 KB
374
+ --- wc -l (baseline) ---
375
+ Time: .783242068 seconds
376
+ Memory: 3272 KB
377
+ Column selection test (columns 0,2,3):
378
+
379
+ --- cisv ---
380
+ Time: 14.384985245 seconds
381
+ Memory: 2372932 KB
382
+ ==================================================
383
+
384
+ === CISV Benchmark Mode ===
385
+
386
+ small.csv:
387
+ Benchmarking file: small.csv
388
+ File size: 0.08 MB
389
+
390
+ Run 1: 0.02 ms, 1001 rows
391
+ Run 2: 0.01 ms, 1001 rows
392
+ Run 3: 0.01 ms, 1001 rows
393
+ Run 4: 0.01 ms, 1001 rows
394
+ Run 5: 0.01 ms, 1001 rows
395
+
396
+ medium.csv:
397
+ Benchmarking file: medium.csv
398
+ File size: 9.20 MB
399
+
400
+ Run 1: 1.64 ms, 100001 rows
401
+ Run 2: 1.24 ms, 100001 rows
402
+ Run 3: 1.13 ms, 100001 rows
403
+ Run 4: 1.22 ms, 100001 rows
404
+ Run 5: 2.00 ms, 100001 rows
405
+
406
+ large.csv:
407
+ Benchmarking file: large.csv
408
+ File size: 97.70 MB
409
+
410
+ Run 1: 19.82 ms, 1000001 rows
411
+ Run 2: 19.06 ms, 1000001 rows
412
+ Run 3: 19.29 ms, 1000001 rows
413
+ Run 4: 19.49 ms, 1000001 rows
414
+ Run 5: 19.41 ms, 1000001 rows
415
+
416
+ xlarge.csv:
417
+ Benchmarking file: xlarge.csv
418
+ File size: 1034.18 MB
419
+
420
+ Run 1: 192.34 ms, 10000001 rows
421
+ Run 2: 193.72 ms, 10000001 rows
422
+ Run 3: 195.66 ms, 10000001 rows
423
+ Run 4: 196.29 ms, 10000001 rows
424
+ Run 5: 203.84 ms, 10000001 rows
425
+
426
+ Cleaning up test files...
427
+ Benchmark complete!
428
+
429
+
430
+ =====================================================================================
431
+ from npm :
432
+ =====================================================================================
433
+
434
+ ## BEFORE
435
+
436
+ $ npm run benchmark ./fixtures/data.csv
437
+
438
+ > cisv@0.0.1 benchmark
439
+ > node benchmark/benchmark.js ./fixtures/data.csv
440
+
441
+ Starting benchmark with file: ./fixtures/data.csv
442
+ All tests will retrieve row index: 857010
443
+
444
+ File size: 0.00 MB
445
+ Warning: File has fewer than 857011 rows. Tests will run but may not retrieve data.
446
+
447
+
448
+ --- Running: Sync (Parse only) Benchmarks ---
449
+ cisv (sync) x 120,816 ops/sec ±4.48% (68 runs sampled)
450
+ Speed: 54.27 MB/s | Avg Time: 0.01 ms | Ops/sec: 120816
451
+ (cooling down...)
452
+
453
+ csv-parse (sync) x 30,106 ops/sec ±2.87% (87 runs sampled)
454
+ Speed: 13.52 MB/s | Avg Time: 0.03 ms | Ops/sec: 30106
455
+ (cooling down...)
456
+
457
+ papaparse (sync) x 55,327 ops/sec ±1.43% (95 runs sampled)
458
+ Speed: 24.85 MB/s | Avg Time: 0.02 ms | Ops/sec: 55327
459
+ (cooling down...)
460
+
461
+
462
+ >>>>> Fastest Sync is cisv (sync)
463
+
464
+ --------------------------------------------------
465
+
466
+ --- Running: Sync (Parse + Access) Benchmarks ---
467
+ cisv (sync) x 57,755 ops/sec ±0.44% (95 runs sampled)
468
+ Speed: 25.94 MB/s | Avg Time: 0.02 ms | Ops/sec: 57755
469
+ (cooling down...)
470
+
471
+ csv-parse (sync) x 31,905 ops/sec ±0.61% (96 runs sampled)
472
+ Speed: 14.33 MB/s | Avg Time: 0.03 ms | Ops/sec: 31905
473
+ (cooling down...)
474
+
475
+ papaparse (sync) x 56,011 ops/sec ±0.43% (95 runs sampled)
476
+ Speed: 25.16 MB/s | Avg Time: 0.02 ms | Ops/sec: 56011
477
+ (cooling down...)
478
+
479
+
480
+ >>>>> Fastest Sync is cisv (sync)
481
+
482
+ --------------------------------------------------
483
+
484
+ --- Running: Async (Parse only) Benchmarks ---
485
+ cisv (async/stream) x 153,475 ops/sec ±1.02% (71 runs sampled)
486
+ Speed: 68.94 MB/s | Avg Time: 0.01 ms | Ops/sec: 153475
487
+ (cooling down...)
488
+
489
+ papaparse (async/stream) x 33,315 ops/sec ±3.23% (78 runs sampled)
490
+ Speed: 14.96 MB/s | Avg Time: 0.03 ms | Ops/sec: 33315
491
+ (cooling down...)
492
+
493
+ neat-csv (async/promise) x 16,668 ops/sec ±3.24% (76 runs sampled)
494
+ Speed: 7.49 MB/s | Avg Time: 0.06 ms | Ops/sec: 16668
495
+ (cooling down...)
496
+
497
+
498
+ >>>>> Fastest Async is cisv (async/stream)
499
+
500
+ --------------------------------------------------
501
+
502
+ --- Running: Async (Parse + Access) Benchmarks ---
503
+ cisv (async/stream) x 48,911 ops/sec ±1.36% (82 runs sampled)
504
+ Speed: 21.97 MB/s | Avg Time: 0.02 ms | Ops/sec: 48911
505
+ (cooling down...)
506
+
507
+ papaparse (async/stream) x 35,469 ops/sec ±2.58% (83 runs sampled)
508
+ Speed: 15.93 MB/s | Avg Time: 0.03 ms | Ops/sec: 35469
509
+ (cooling down...)
510
+
511
+ neat-csv (async/promise) x 17,121 ops/sec ±2.26% (80 runs sampled)
512
+ Speed: 7.69 MB/s | Avg Time: 0.06 ms | Ops/sec: 17121
513
+ (cooling down...)
514
+
515
+
516
+ >>>>> Fastest Async is cisv (async/stream)
517
+
518
+ --------------------------------------------------
519
+
520
+ Benchmark Results Table (Markdown)
521
+
522
+ ### Synchronous Results
523
+
524
+ | Library | Speed (MB/s) | Avg Time (ms) | Operations/sec |
525
+ |--------------------|--------------|---------------|----------------|
526
+ | cisv (sync) | 54.27 | 0.01 | 120816 |
527
+ | csv-parse (sync) | 13.52 | 0.03 | 30106 |
528
+ | papaparse (sync) | 24.85 | 0.02 | 55327 |
529
+ | cisv (sync) | 25.94 | 0.02 | 57755 |
530
+ | csv-parse (sync) | 14.33 | 0.03 | 31905 |
531
+ | papaparse (sync) | 25.16 | 0.02 | 56011 |
532
+
533
+
534
+ ### Asynchronous Results
535
+
536
+ | Library | Speed (MB/s) | Avg Time (ms) | Operations/sec |
537
+ |--------------------------|--------------|---------------|----------------|
538
+ | cisv (async/stream) | 68.94 | 0.01 | 153475 |
539
+ | papaparse (async/stream) | 14.96 | 0.03 | 33315 |
540
+ | neat-csv (async/promise) | 7.49 | 0.06 | 16668 |
541
+ | cisv (async/stream) | 21.97 | 0.02 | 48911 |
542
+ | papaparse (async/stream) | 15.93 | 0.03 | 35469 |
543
+ | neat-csv (async/promise) | 7.69 | 0.06 | 17121 |
544
+
545
+
546
+ =====================================================================================
547
+ from npm :
548
+ =====================================================================================
549
+
550
+ ## AFTER
551
+
552
+ > cisv@0.0.1 benchmark
553
+ > node benchmark/benchmark.js ./fixtures/data.csv
554
+
555
+ Starting benchmark with file: ./fixtures/data.csv
556
+ All tests will retrieve row index: 857010
557
+
558
+ File size: 0.00 MB
559
+ Warning: File has fewer than 857011 rows. Tests will run but may not retrieve data.
560
+
561
+
562
+ --- Running: Sync (Parse only) Benchmarks ---
563
+ cisv (sync) x 135,349 ops/sec ±5.05% (73 runs sampled)
564
+ Speed: 60.80 MB/s | Avg Time: 0.01 ms | Ops/sec: 135349
565
+ (cooling down...)
566
+
567
+ csv-parse (sync) x 32,656 ops/sec ±1.14% (96 runs sampled)
568
+ Speed: 14.67 MB/s | Avg Time: 0.03 ms | Ops/sec: 32656
569
+ (cooling down...)
570
+
571
+ papaparse (sync) x 55,933 ops/sec ±1.55% (91 runs sampled)
572
+ Speed: 25.12 MB/s | Avg Time: 0.02 ms | Ops/sec: 55933
573
+ (cooling down...)
574
+
575
+
576
+ >>>>> Fastest Sync is cisv (sync)
577
+
578
+ --------------------------------------------------
579
+
580
+ --- Running: Sync (Parse + Access) Benchmarks ---
581
+ cisv (sync) x 131,372 ops/sec ±3.48% (78 runs sampled)
582
+ Speed: 59.01 MB/s | Avg Time: 0.01 ms | Ops/sec: 131372
583
+ (cooling down...)
584
+
585
+ csv-parse (sync) x 31,761 ops/sec ±1.21% (93 runs sampled)
586
+ Speed: 14.27 MB/s | Avg Time: 0.03 ms | Ops/sec: 31761
587
+ (cooling down...)
588
+
589
+ papaparse (sync) x 54,544 ops/sec ±0.50% (96 runs sampled)
590
+ Speed: 24.50 MB/s | Avg Time: 0.02 ms | Ops/sec: 54544
591
+ (cooling down...)
592
+
593
+
594
+ >>>>> Fastest Sync is cisv (sync)
595
+
596
+ --------------------------------------------------
597
+
598
+ --- Running: Async (Parse only) Benchmarks ---
599
+ cisv (async/stream) x 155,400 ops/sec ±1.79% (68 runs sampled)
600
+ Speed: 69.80 MB/s | Avg Time: 0.01 ms | Ops/sec: 155400
601
+ (cooling down...)
602
+
603
+ papaparse (async/stream) x 32,404 ops/sec ±3.89% (75 runs sampled)
604
+ Speed: 14.56 MB/s | Avg Time: 0.03 ms | Ops/sec: 32404
605
+ (cooling down...)
606
+
607
+ neat-csv (async/promise) x 16,670 ops/sec ±2.47% (76 runs sampled)
608
+ Speed: 7.49 MB/s | Avg Time: 0.06 ms | Ops/sec: 16670
609
+ (cooling down...)
610
+
611
+
612
+ >>>>> Fastest Async is cisv (async/stream)
613
+
614
+ --------------------------------------------------
615
+
616
+ --- Running: Async (Parse + Access) Benchmarks ---
617
+ cisv (async/stream) x 107,916 ops/sec ±1.13% (75 runs sampled)
618
+ Speed: 48.47 MB/s | Avg Time: 0.01 ms | Ops/sec: 107916
619
+ (cooling down...)
620
+
621
+ papaparse (async/stream) x 34,477 ops/sec ±2.88% (75 runs sampled)
622
+ Speed: 15.49 MB/s | Avg Time: 0.03 ms | Ops/sec: 34477
623
+ (cooling down...)
624
+
625
+ neat-csv (async/promise) x 17,038 ops/sec ±2.34% (81 runs sampled)
626
+ Speed: 7.65 MB/s | Avg Time: 0.06 ms | Ops/sec: 17038
627
+ (cooling down...)
628
+
629
+
630
+ >>>>> Fastest Async is cisv (async/stream)
631
+
632
+ --------------------------------------------------
633
+
634
+ Benchmark Results Table (Markdown)
635
+
636
+ ### Synchronous Results
637
+
638
+ | Library | Speed (MB/s) | Avg Time (ms) | Operations/sec |
639
+ |--------------------|--------------|---------------|----------------|
640
+ | cisv (sync) | 60.80 | 0.01 | 135349 |
641
+ | csv-parse (sync) | 14.67 | 0.03 | 32656 |
642
+ | papaparse (sync) | 25.12 | 0.02 | 55933 |
643
+ | cisv (sync) | 59.01 | 0.01 | 131372 |
644
+ | csv-parse (sync) | 14.27 | 0.03 | 31761 |
645
+ | papaparse (sync) | 24.50 | 0.02 | 54544 |
646
+
647
+
648
+ ### Asynchronous Results
649
+
650
+ | Library | Speed (MB/s) | Avg Time (ms) | Operations/sec |
651
+ |--------------------------|--------------|---------------|----------------|
652
+ | cisv (async/stream) | 69.80 | 0.01 | 155400 |
653
+ | papaparse (async/stream) | 14.56 | 0.03 | 32404 |
654
+ | neat-csv (async/promise) | 7.49 | 0.06 | 16670 |
655
+ | cisv (async/stream) | 48.47 | 0.01 | 107916 |
656
+ | papaparse (async/stream) | 15.49 | 0.03 | 34477 |
657
+ | neat-csv (async/promise) | 7.65 | 0.06 | 17038 |
658
+