0

我正在为 iPhone OS 开发游戏/引擎。这是我第一次使用 Objective-C。

我为几何数据和纹理制作了自己的二进制格式,我专注于 PVRTC。就速度和空间而言,这应该是最佳方法。我真的想将加载时间保持在最低限度,并且 - 如果可能的话 - 也能够非常快速地保存。

所以现在我试图在不牺牲性能的情况下让我的“实体”东西持久化。

首先,我想使用 NSKeyedArchiver。据我所知,它不是很快。此外,我要序列化的主要是由带有一些整数和字符串的浮点数组成的结构,因此实际上不需要所有“对象图”开销。

NSArchiver 本来会更合适,但出于某种原因,他们将其从 iphone 中删除了。

所以现在我正在考虑再次制作自己的序列化方案。我认为 NSKeyedArchiver 很慢是错误的吗(我只读过,没有自己测试过)?如果是这样,在不牺牲速度的情况下编码/解码结构(没有指针,主要是浮点数)的最佳方法是什么?

4

2 回答 2

1

不要费心优化你没有测试过的东西......它可能“足够好”。一个提示;二进制格式的速度大约是 XML 格式的 2 倍,内存效率几乎是 XML 格式的 2 倍。

除此之外......嗯......你会遇到各种特定案例的问题。您需要一次获取所有数据吗?需要流式传输吗?任意子集?它是如何连接的?它会被重组为一个或多个 ObjC 对象吗?数据是预装的吗?等等等等等等

于 2010-06-14T04:44:08.003 回答
0

我使用yajl-objc进行序列化和与 REST 样式的 Web 服务通信都取得了很好的效果;它足以满足我的需求并且易于使用。

话虽如此,除非您拥有大量数据,否则NSKeyedArchiver可能会做得很好。

于 2010-06-14T04:55:43.433 回答