-
Notifications
You must be signed in to change notification settings - Fork 0
/
memory-leak-tasks.js
33 lines (30 loc) · 873 Bytes
/
memory-leak-tasks.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
const memoryLeak = new Map();
/**
* Runs memory leak task in a way that all created objects are persisted in memory across the application.
* @param cb Callback to call after the task is finished
*/
export function runMemoryLeakTask(cb) {
for (let i = 0; i < 10000; i++) {
const person = {
name: `Person number ${i}`,
age: i,
};
memoryLeak.set(person, `I am a person number ${i}`);
}
cb();
}
const smartMemoryLeak = new WeakMap();
/**
* Runs memory leak task in a way that all created objects get garbage collected after function call ends.
* @param cb Callback to call after the task is finished.
*/
export function runSmartMemoryLeakTask(cb) {
for (let i = 0; i < 10000; i++) {
const person = {
name: `Person number ${i}`,
age: i,
};
smartMemoryLeak.set(person, `I am a person number ${i}`);
}
cb();
}