-
Notifications
You must be signed in to change notification settings - Fork 0
/
perf.js
41 lines (36 loc) · 876 Bytes
/
perf.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
"use strict";
var Backing = require("./");
function go () {
var backing = new Backing({
name: 'perf',
arenaSize: 20 * 1024 * 1024,
arenaSource: {
type: 'mmap',
dirname: __dirname + '/data'
}
})
backing.init().then(function runner () {
const addresses = [];
for (var i = 0; i < 10000; i++) {
var address = backing.gc.alloc(512);
backing.gc.ref(address);
addresses.push(address);
if (i > 6 && i % 3 === 0) {
backing.gc.unref(addresses[i - 3]);
addresses[i - 3] = 0;
}
}
backing.gc.cycle();
for (var i = 0; i < addresses.length; i++) {
if (addresses[i] !== 0) {
backing.gc.unref(addresses[i]);
}
}
backing.gc.cycle();
backing.gc.cycle();
console.log(backing.gc.inspect());
}).catch(function (e) {
console.log(e.stack);
});
}
go();