-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
Copy pathmemory.js
44 lines (35 loc) · 1018 Bytes
/
memory.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
if (process.execArgv[0] !== "--expose-gc") {
console.error("please run with node --expose-gc");
process.exit(1);
}
var async = require("../");
global.gc();
var startMem = process.memoryUsage().heapUsed;
function waterfallTest(done) {
var functions = [];
for(var i = 0; i < 10000; i++) {
functions.push((next) => {
function func1(cb) {return cb(); }
function func2(callback) {
callback();
//return next(); // Should be callback here.
}
function func3(cb) {return cb(); }
async.waterfall([
func1,
func2,
func3
], next);
});
}
async.parallel(functions, done);
}
function reportMemory() {
global.gc();
var increase = process.memoryUsage().heapUsed - startMem;
console.log("memory increase: " +
(+(increase / 1024).toPrecision(3)) + "kB");
}
waterfallTest(() => {
setTimeout(reportMemory, 0);
});