-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbenchmark.js
75 lines (62 loc) · 1.6 KB
/
benchmark.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
var fs = require('fs');
var carrier = require('carrier');
var eol = require('./');
var assert = require('assert');
var split = require('split');
var linesCarrier = 0;
var linesEol = 0;
var lengthCarrier = 0;
var lengthEol = 0;
var linesSplit = 0;
var lengthSplit = 0;
function carrierTest(cb) {
var begin = new Date().getTime();
var stream = fs.createReadStream(process.argv[2]);
carrier.carry(stream, function(line) {
linesCarrier++;
lengthCarrier += line.length;
});
stream.on('end', function() {
console.log("Carrier took: ", (new Date().getTime()) - begin);
cb();
});
}
function eolTest(cb) {
var begin = new Date().getTime();
var stream = fs.createReadStream(process.argv[2]);
eol.streamWrapper(stream, function(line) {
linesEol++;
lengthEol += line.length;
});
stream.on('end', function() {
console.log("EOL took: ", (new Date().getTime()) - begin);
cb();
});
}
function splitTest(cb) {
var begin = new Date().getTime();
var stream = fs.createReadStream(process.argv[2])
.pipe(split()).on('data', function(line) {
linesSplit++;
lengthSplit += line.length;
});
stream.on('end', function() {
console.log("Split took: ", (new Date().getTime()) - begin);
cb();
});
}
eolTest(function() {
carrierTest(function() {
splitTest(function() {
eolTest(function() {
carrierTest(function() {
splitTest(function() {
console.log(linesSplit, linesCarrier);
assert(linesCarrier == linesEol);
assert(lengthCarrier == lengthEol);
});
});
});
});
});
});