Last active
October 30, 2016 14:45
-
-
Save JerryC8080/ffae16b9507c24493fa9eec7d2208617 to your computer and use it in GitHub Desktop.
内存泄漏脚本
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 泄露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(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 泄露堆外内存 | |
*/ | |
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