0

我正在创建一个用于跟踪位置的 x,y 值列表。进行android优化非常重要,所以我想知道从资源使用的角度来看哪种方法更好。

方法 1:创建一个包含 x 和 y 的 int 的类(Position),然后创建一个列表:positions。

方法 2:创建并行列表:positionsX 和 positionY。

我之所以问,是因为方法 1 似乎对 OO 编码是最用户友好的,但我对 Java 或 android 的内部工作原理知之甚少,而且我担心额外类的开销会抵消任何好处。

或者它们是否足够接近以至于它并不重要?

4

2 回答 2

1

两种解决方案之间的性能差异可以忽略不计。根据更详细的细节,例如什么类型的列表(数组、列表、映射等)以及您访问数据的方式,将确定哪个更快,可以忽略不计。

但是,从可读性、OO 和可维护性的角度来看,方法 1 以压倒性优势获胜。

于 2013-01-22T02:15:02.167 回答
0

Android 上的 Java 垃圾收集速度很慢。如果您创建和丢弃大量 Position 对象,当 GC 启动时,您的应用程序可能会出现明显的暂停。如果您使用类解决方案,您可以在类中创建对象缓存以缓解此问题。

如果您使用数组,请注意迭代器和 foreach 循环:上次我检查时,它们为每个元素创建了一个新对象。

无论如何,只有当您创建大量(例如每秒数千个)这些对象时,性能差异才会可见。

于 2013-01-22T02:14:50.073 回答