【发布时间】:2014-01-05 15:40:31
【问题描述】:
什么更快? 我想编写一个 API 来处理和计算向量和矩阵。 “Matrix4f”需要 4*4 浮点值。 我应该把它写成 16 个字段还是二维数组? 但是如果我使用字段,继承是不可能的。
【问题讨论】:
-
什么更快?这取决于。衡量,不要猜测。
-
数组有 O(1) 的查找时间,应该不会相差太大。您真的要维护 16 个单独的字段吗?
-
如果它快很多,那么是的,我想保持它。
-
永远不要过早优化。首先以易于维护的方式编写代码。如果您想创建代码来处理矩阵和向量,那么数组应该是您的首选。
-
更快的方法是更适合解决您的问题的方法。数组访问涉及额外的间接和边界检查(对于 2-dim 数组,每个检查两个),但这些都很便宜。我猜想声明/使用 16 个字段将涉及大量代码重复,并且在您完成之前会产生多个错误。另外,没有办法(除了非常低效的“反射”来在需要时以数组方式处理各个字段(毫无疑问)。
标签: java arrays performance field