Skip to content

Instantly share code, notes, and snippets.

@LaleWolf
Created January 30, 2020 12:43
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 LaleWolf/a654a40fbb89247abefe7a71f253aace to your computer and use it in GitHub Desktop.
Save LaleWolf/a654a40fbb89247abefe7a71f253aace to your computer and use it in GitHub Desktop.
fabric-gist
const { fabric } = require('fabric');
fabric.Object.prototype.objectCaching = false;
const runnerLoopCount = 10;
const canvasLoopCount = 1000;
const newFabricCanvas = () => {
for (let i = 0; i < canvasLoopCount; i++) {
const canvas = new fabric.StaticCanvas("c", { enableRetinaScaling: false });
const rect = new fabric.Rect({
left: 100,
top: 100,
width: 100,
height: 50,
});
canvas.add(rect);
canvas.clear();
canvas.dispose();
}
};
const logMemoryUsage = () => {
let usage = process.memoryUsage()
console.log("{ rss: %d,\theapTotal: %d,\theapUsed: %d,\texternal: %d }", usage.rss, usage.heapTotal, usage.heapUsed, usage.external);
};
const runner = () => {
logMemoryUsage();
for (let i = 0; i < runnerLoopCount; i++) {
newFabricCanvas();
if (global.gc) {
global.gc();
}
logMemoryUsage();
}
};
//start memory leak loop
runner();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment