【发布时间】:2014-04-12 06:43:09
【问题描述】:
我正在开发一款基于 HTML5 的浏览器游戏,该游戏具有整页画布。这意味着画布的大小对应于窗口的尺寸。调整窗口大小时会更改宽度和高度,这就像一个魅力。问题在于 Chrome (34.0.1847.116):当您更改这些值时,会分配相当数量的虚拟内存,从而使应用程序变慢。经过 1-2 分钟的不断调整大小后,它使用了超过 7 GB 的内存。它没有显示在“chrome://memory-redirect/”中,仅显示在任务管理器中。 IE11 不会产生这种症状。
以下 sn-p 是我想要实现的简化版本。创建一个 id 为“test”的画布并尝试调整窗口大小。分辨率越高,消耗的内存就越多。
var canvas = document.getElementById('test');
var ctx = canvas.getContext('2d');
function resize() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
}
window.addEventListener('resize', resize);
是否可以在 Chrome 中使用此机制?
【问题讨论】:
-
“一到两分钟不断调整大小”谁会这样做?这看起来像一个错误,但我不会太担心。
标签: javascript html google-chrome canvas