From 7ef7f95374e5ef327d2776ec149996ad97fecba9 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Mon, 16 Jun 2014 22:58:11 -0700 Subject: [PATCH] Zero the height and width of the Cached canvases before deleting. This reduces peak RSS by about 300 MiB on my Mac when scrolling slowly through the first 30 pages of a scanned black and white document. --- src/display/canvas.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/display/canvas.js b/src/display/canvas.js index 5bd4fc97b..fcedbae94 100644 --- a/src/display/canvas.js +++ b/src/display/canvas.js @@ -179,7 +179,14 @@ var CachedCanvases = (function CachedCanvasesClosure() { return canvasEntry; }, clear: function () { - cache = {}; + for (var id in cache) { + var canvasEntry = cache[id]; + // Zeroing the width and height causes Firefox to release graphics + // resources immediately, which can greatly reduce memory consumption. + canvasEntry.canvas.width = 0; + canvasEntry.canvas.height = 0; + delete cache[id]; + } } }; })();