-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuffer.js
executable file
·42 lines (27 loc) · 1.08 KB
/
buffer.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
#!/usr/bin/env node
const fs = require('fs');
const { performance, PerformanceObserver } = require('perf_hooks');
const obs = new PerformanceObserver((list, observer) => {
console.log('Operation completed after: ', list.getEntries()[0].duration.toFixed(2), 'ms');
performance.clearMarks();
observer.disconnect();
});
obs.observe({ entryTypes: ['measure'], buffered: true });
performance.mark('Start');
const data = fs.readFileSync(__dirname + '/data.csv', 'utf8').split('\n');
// console.log('Rows before filtering:\t', data.length);
const output = data
.map(d => d.split('|'))
.filter(row => row[2])
.filter(row => row[4])
.map(row => {
const formattedPhone = row[4].replace(/[\sx()-.]/g, '');
row[4] = formattedPhone;
return row;
});
// console.log('Rows after filtering:\t', output.length);
fs.writeFileSync(__dirname + '/outputBuffer.csv', `${output.join('\n')}\n`);
const used = process.memoryUsage().heapUsed / 1024 / 1024;
console.log('Memory used: ', parseInt(used, 10), 'MB');
performance.mark('End');
performance.measure('Completed', 'Start', 'End');