游戏序列化中频繁创建新数组是否属于不良编程实践?
关于动态创建数组的编程实践与内存回收问题
你当前在Save方法中用int[] intArray = new int[specifiedLength];创建动态长度数组的做法不属于不良编程实践,反而在游戏存档这种场景下是合理选择——数组长度随游戏进程变化,直接创建匹配长度的数组,比维护一个冗余的超大数组更能节省内存开销。
关于旧数组的回收:完全不用担心,只要旧数组不再被任何引用持有(比如Save方法执行完毕后,局部变量的数组会失去引用),垃圾回收器(GC)会自动在合适时机回收这些内存。你Save方法每1-2分钟调用一次的频率非常低,这种级别的内存分配不会给GC造成压力,游戏引擎的GC完全能轻松处理。
如果想要进一步优化(非必须),可以针对频繁出现的数组长度做对象池复用,但这属于锦上添花的优化,当前写法已经足够规范高效。
内容的提问来源于stack exchange,提问作者Kenneth
相关产品推荐
相关产品推荐

