Skip to content

Instantly share code, notes, and snippets.

@JerryC8080
Last active October 30, 2016 14:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JerryC8080/ffae16b9507c24493fa9eec7d2208617 to your computer and use it in GitHub Desktop.
Save JerryC8080/ffae16b9507c24493fa9eec7d2208617 to your computer and use it in GitHub Desktop.
内存泄漏脚本
/**
* 泄露V8 Heap内存
*/
let total = [];
function useMem() {
let size = 1024 * 1024 * 20; // Per 20MB
let arr = new Array(size);
for (let i = 0; i < size; i++) {
arr[i] = 0;
}
return arr;
}
function showMem() {
let mem = process.memoryUsage();
let format = (bytes) => (bytes / 1024 / 1024).toFixed(2) + 'MB';
console.log(`Process: heapTotal ${format(mem.heapTotal)} heapUsed ${format(mem.heapUsed)} rss ${mem.rss}`);
}
for (let i =0; i < 15; i++ ){
showMem();
total.push(useMem());
}
showMem();
/**
* 泄露堆外内存
*/
let total = [];
function useMem() {
let size = 1024 * 1024 * 20; // Per 20MB
let buffer = new Buffer(size);
for (let i = 0; i < size; i++) {
buffer[i] = 0;
}
return buffer;
}
function showMem() {
let mem = process.memoryUsage();
let format = (bytes) => (bytes / 1024 / 1024).toFixed(2) + 'MB';
console.log(`Process: heapTotal ${format(mem.heapTotal)} heapUsed ${format(mem.heapUsed)} rss ${mem.rss}`);
}
for (let i =0; i < 15; i++ ){
showMem();
total.push(useMem());
}
showMem();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment