Performance 在firefox的html5画布游戏中追踪生成tilemap的瓶颈/错误

Performance 在firefox的html5画布游戏中追踪生成tilemap的瓶颈/错误,performance,html,firefox,Performance,Html,Firefox,我正在使用一个平铺引擎根据数组生成巨大的地图。地图分为多个区域,仅绘制“视图”周围区域中的瓷砖,在巨型地图上表现出色,移动平稳 然而,我只在Firefox上达到了一个极限,我无法理解 起初我以为这仅仅是因为我使用的是巨型阵列,firefox能够处理100x100 64px的方形瓷砖而没有错误,但上面的任何操作都会产生“停止脚本”错误并锁定FF 同时,IE,Chrome,Safari,甚至我2.5岁的HTC android手机都可以生成500x300+的地图(虽然手机运行速度仅为4fps,但至少可

我正在使用一个平铺引擎根据数组生成巨大的地图。地图分为多个区域,仅绘制“视图”周围区域中的瓷砖,在巨型地图上表现出色,移动平稳

然而,我只在Firefox上达到了一个极限,我无法理解

起初我以为这仅仅是因为我使用的是巨型阵列,firefox能够处理100x100 64px的方形瓷砖而没有错误,但上面的任何操作都会产生“停止脚本”错误并锁定FF

同时,IE,Chrome,Safari,甚至我2.5岁的HTC android手机都可以生成500x300+的地图(虽然手机运行速度仅为4fps,但至少可以通过初始化+绘制地图,不像我的桌面pc上的Firefox!!!!!!这是150000块瓷砖!!!!!!!!!!!!!!!与Firefox在10000块瓷砖上的表现相比……我2.5年的手机怎么能生成比桌面上运行的Firefox大15倍以上的地图

在resource monitor中,我的CPU和RAM max立即进入FF,然后出现“关闭文档以防止数据丢失”错误…但我的手机可以处理比桌面大得多的地图,这让我相信FF处理循环的方式存在缺陷,而IE、Chrome、Safari、Opera和我的手机处理更大的循环

以下是适用于所有浏览器的版本,包括带有100x100平铺贴图的FF

这是一个500x100瓷砖贴图(50000瓷砖)的版本,它会阻塞FF,但可以在所有其他浏览器上运行,并且至少可以在我的手机上加载:


有谁能解释为什么一部旧手机会生成比FF在我的桌面上能处理的地图大15倍的地图吗?

所有150000块瓷砖都会同时显示吗?或者它们只是加载,但在需要时才使用


64px的方形解码图像每个使用16KB的RAM。因此,其中10000个将使用160MB的RAM。150000块瓷砖将使用2+GB内存。我在这里看到的是Firefox使用了大量RAM,因此它开始交换……

我认为没有15万个独特的图像可供加载。这意味着Firefox自己创建了所有这些。这就是为什么只有FF交换的原因。那么,瓷砖图片是从什么开始的呢?它们是如何产生的?