Last active
April 10, 2018 13:30
-
-
Save peernohell/9d42ad5b8de45f2d1ac9ebb3971e2ea0 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
const { fabric } = require('fabric'); | |
const fs = require('fs'); | |
// OK | |
let loop1 = 100; | |
let loop2 = 0; | |
// Leak | |
loop1 = 1; | |
loop2 = 100; | |
// leak and goes up to 700Mo RSS and 600Mo for external. | |
// loop2 = 600; | |
const m = () => ([process.memoryUsage().rss / 1000000 | 0, process.memoryUsage().heapTotal / 1000000 | 0, process.memoryUsage().heapUsed / 1000000 | 0, process.memoryUsage().external / 1000000 | 0]); | |
const image = (i = 0) => { | |
const canvas = new fabric.StaticCanvas(); | |
canvas.setWidth(600); | |
canvas.setHeight(400); | |
const obj = { | |
version: '2.0.0-rc.3', | |
objects: [{ | |
type: 'image', | |
version: '2.0.0-rc.3', | |
src: `https://imgflip.com/s/meme/Leonardo-Dicaprio-Cheers.jpg`, | |
}], | |
}; | |
canvas.loadFromJSON(obj, () => { | |
// convert tags | |
canvas.getObjects().forEach(o => { | |
if (o.type === 'image') { | |
let newSrc = 'https://lh5.googleusercontent.com/-uU9156CO9Y8/AAAAAAAAAAI/AAAAAAAARzE/gXfT-SXMzxs/photo.jpg'; | |
// newSrc = `${o.src}?r=${Random.id()}`; | |
const oldWidth = o.width; | |
for (let i = 0; i < loop2; i++) { | |
o.setSrc(newSrc); | |
} | |
} | |
}); | |
// canvas.renderAll(); | |
canvas.toDataURL({ format: 'png' }); | |
canvas.clear(); | |
canvas.dispose(); | |
canvas.contextContainer = null; | |
// global.gc(); | |
console.log(`IMG${i}`, m()); | |
}); | |
}; | |
console.log('START ', m()); | |
for (let i = 0; i < loop1; i++) { | |
image(i); | |
} | |
console.log('END ', m()); | |
setInterval(() => { | |
global.gc(); | |
console.log('RSS ', m()); | |
}, 1000); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment