Skip to content

Commit aab6bd8

Browse files
authored
Added csv-parser and papaparse to benchmark (#1)
- Added csv-parser (https://github.com/mafintosh/csv-parser) to benchmark - Added PapaParse (https://www.papaparse.com/) to benchmark - Updated benchmark
1 parent cf4d50e commit aab6bd8

File tree

3 files changed

+50
-7
lines changed

3 files changed

+50
-7
lines changed

index.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
var csvtojson = require('csvtojson')
44
var csv = require('csv')
55
var fastCsv = require('fast-csv')
6+
var csvParser = require('csv-parser')
7+
var Papa = require('papaparse')
8+
69
var csvFile = '1.csv'
710
var outputFile = "output.txt";
811
console.time("fast-csv")
@@ -14,6 +17,14 @@ testFastCsv(function () {
1417
console.time("csvtojson")
1518
testCsvToJson(function () {
1619
console.timeEnd("csvtojson")
20+
console.time("csv-parser")
21+
testCsvParser(function () {
22+
console.timeEnd("csv-parser")
23+
console.time("papaparse")
24+
testPapaParse(function () {
25+
console.timeEnd("papaparse")
26+
})
27+
})
1728
})
1829
})
1930
})
@@ -59,3 +70,31 @@ function testCsv(cb) {
5970
cb();
6071
})
6172
}
73+
74+
function testCsvParser(cb) {
75+
var fileName = "csvParser-" + outputFile;
76+
var ws = require('fs').createWriteStream(fileName)
77+
var rs = require('fs').createReadStream(csvFile)
78+
var stream = csvParser();
79+
rs.pipe(stream)
80+
.on("data",function(d){
81+
ws.write(d[0] + "\n")
82+
})
83+
.on("end",function(){
84+
cb();
85+
})
86+
}
87+
88+
function testPapaParse(cb) {
89+
var fileName = "papaParse-" + outputFile;
90+
var ws = require('fs').createWriteStream(fileName)
91+
var rs = require('fs').createReadStream(csvFile)
92+
var stream = Papa.parse(Papa.NODE_STREAM_INPUT)
93+
rs.pipe(stream)
94+
.on("data",function(d){
95+
ws.write(d[0] + "\n")
96+
})
97+
.on("end",function(){
98+
cb();
99+
})
100+
}

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
"author": "",
1010
"license": "MIT",
1111
"dependencies": {
12-
"csvtojson": "^1.1.0",
1312
"csv": "^1.1.0",
14-
"fast-csv": "^2.3.0"
13+
"csv-parser": "^2.3.1",
14+
"csvtojson": "^1.1.0",
15+
"fast-csv": "^2.3.0",
16+
"papaparse": "^5.1.0"
1517
}
1618
}

readme.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,16 @@ All parsers will simply do following
2222

2323
# Result
2424

25-
Here is some result running on a 2013 Macbook Pro:
25+
Here is some result running on a 2019 Macbook Pro:
2626

2727
```
2828
$ node ./index.js
29-
fast-csv: 5248.767ms
30-
csv: 3798.266ms
31-
csvtojson: 948.493ms
29+
csv: 1844.045ms
30+
fast-csv: 1681.046ms
31+
csv-parser: 722.762ms
32+
csvtojson: 436.225ms
33+
papaparse: 434.335ms
3234
$ node --version
33-
v6.9.1
35+
v12.4.0
3436
```
3537

0 commit comments

Comments
 (0)