将静态数据存储在图像而不是数组中是否有任何优势?

雅各布尤因

我正在开发一个涉及世界地图的 Javascript 游戏,并且正在将该地图绘制/存储为图像。图像上每个像素的颜色代表地图上该单元格将包含的内容。

加载图像并即时从中读取颜色而不是预加载并将其存储为数组是否有任何内存消耗优势?

此外,这样做可能会导致严重的速度下降吗?

我可能最终会根据需要只加载它的一部分,但同样的问题仍然存在。当前测试图像为 1000x1000 像素。

紫冰

不。没有,除非您关心绘制图像而不是手写数以千计的数字。

从图像中检索数据的最快方法是采用“类似图像的对象”(基本上是画布或实际图像)并调用.getImageData(x, y, width, height)以获取像素值数组。

如果有的话,那会增加 """overhead""" (可以忽略不计),因为你现在有 4 倍的值。每个像素都存储在 4 个 JavaScript numbers 上,因为您可以将每个图块作为单个整数标识符来代替,这会浪费内存。

虽然, imageData 对象允许您从中获取矩形,如果您将有 4 个平铺层,那么存储像素的方式是最好的。

如果你想将你的关卡存储为一个图像然后去做,我仍然可能将关卡存储在一个平面数组中,因为如果我需要第 5 层,我可以只切换几个数字,瞧,现在我的系统有 5 层,你不能用图像数据做到这一点。

无论哪种方式,只要尝试确保无论您采用哪种方式,都具有低级别的嵌套(所有层的平面数组优于每层的 4 个数组)并且从数组中检索值对于您所做的工作来说足够快.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Firestore在“数据存储模式”下是否具有任何优势“本机模式”

将二进制数据存储在静态数组中

将ENUM中定义的值在MariaDB中排序是否有任何性能优势?

如果不是为了延迟初始化,那么使用方法而不是静态类成员来构建单例是否有任何优势?

将图像存储在文件夹而不是Google Cloud存储中是否具有成本效益?

是否以有效的方式将数组存储在数据库中?

通过使用MIN MAX而不是通过常规代码检查范围,在速度方面是否有任何优势?

Hive-Varchar vs String,如果存储格式为Parquet文件格式,是否有任何优势

如果我每次都必须等待而不是使用 Sync .ToList(),那么使用 .ToListAsync 的各个多数据库查询是否有任何性能优势?

将数据存储在静态类中[PHP]

在Dask中预分散数据对象是否有优势?

是否可以将单个 PostgreSQL 数据库存储在单个文件/目录中,而不是一个包含所有内容的中央数据存储库?

将 JWT 存储在 cookie 和本地存储中是否有任何好处?

在SQL Server 2012中将newid()存储在数据类型为UNIQUEIDENTIFIER的列中有什么优势?

将HDF5用于大型阵列存储(而不是平面二进制文件)是否具有分析速度或内存使用优势?

这种在连续子数组中找到最大和的递归算法是否有任何优势?

是否有任何数据类型可以在SQL Server中存储超过2 GB的数据

将图像存储在数据库中而不是文件系统中

他们在 django 模型上使用 @property 装饰器而不是将字段直接保存到数据库中的任何时间优势

是否将 SVG 图像存储在 JSON 中?

将图像中的数据存储在Cookie中

通过将hashCode和equals抽象化来实施它们是否有任何优势?

在 Python 中尽可能将方法定义为静态方法是否有优势?

检查数组中是否有任何值

使用静态导入而不是导入有什么优势?

Java中的数组是否存储数据或指针

无法将存储在Firebase数据库中的图像(静态)提取到我的应用程序中

在Angular> = 7中,使用@Inject声明类@Injectable是否有任何优势?

在WiredTiger中对MongoDb文档执行部分更新是否比完整文档更新有任何优势?