我正在使用LibGdx编写游戏代码。我创建了一个关卡编辑器,您可以在其中放置关卡。将所有对象放入列表中,然后通过将列表写出到对象输出流来序列化整个列表。然后我读入游戏中的对象列表,并将列表复制到当前正在播放的对象列表中。在正在玩游戏的实际用户设备上,将有20多个序列化级别文件。它们只会在此时被反序列化。这是关于内存和性能的有效方法吗?这些文件能占用大量内存吗?我注意到人们使用xml或Json来做我正在做的事情。我是否应该担心我的电平加载方式有任何问题?谢谢。如果我的问题不清楚,请告诉我。
答案 0 :(得分:1)
当我们在代码中寻找减速时,我们将其分析为运行并发现花费了大量时间在一件事上。当我们看起来它变成了一个对象被复制的部分,通过将其序列化为字符串并返回。出于某种原因,序列化的默认java实现是SLOW。
序列化的另一个问题是它是黑盒子 - 如果你的文件被破坏或者你在升级过程中弄乱了你的对象,你可能会失去一切。
您是否考虑过ORM和某种简单的数据库?有些数据库被编译到你的代码中(对用户来说是不可见的),它几乎只是db.save(anyObject)......非常容易使用。
答案 1 :(得分:0)