我正在创建跟踪位置的x,y值列表。研究android优化是非常重要的,所以我想知道从资源使用的角度来看哪种方法会更好。
方法1: 创建一个包含x和y的int的类(Position),然后创建一个list:positions。
方法2: 创建并行列表:positionsX和positionsY。
我在问,因为方法1对于OO编码似乎是最友好的用户,但我对Java或android的内部工作原理还不够了,我担心额外课程的开销会抵消任何好处。
或者他们是否足够接近并不重要?
答案 0 :(得分:1)
两种解决方案之间的性能差异可以忽略不计。根据更详细的细节,例如什么类型的列表(数组,列表,地图等)以及您如何访问数据将决定哪一个可以忽略不计。
然而,从可读性,面向对象和可维护性的角度来看,方法1以压倒性优势获胜。
答案 1 :(得分:0)
Android上的Java有一个缓慢的垃圾收集。如果您创建并放弃了许多Position对象,那么当GC启动时,您的应用程序可能会有可见的暂停。 如果您使用类解决方案,则可以在类中创建对象缓存以缓解此问题。
如果你使用数组,请注意迭代器和foreach循环:上次我检查时,他们为每个元素创建了一个新对象。
无论如何,只有当您创建这些对象的非常大量(如每秒数千个)时,才会看到性能差异。