【发布时间】:2011-05-12 04:24:20
【问题描述】:
我正在做一个项目,我必须在 PHP 中对数据数组执行计算。其中一些计算涉及使用多个数组。都是相同的长度(计数)。
问题:将数据放入多维数组还是保存在两个数组中更有效(内存和处理器使用率)。
请记住,其中一些数组可能有数千个值。
示例:为了更好地说明,以下是数据和用法的示例:
X = 1,2,3,4,5
Y = 2,3,3,4,4
计算 X 和 Y 之间的相关性。
为此:
- 从列中获取 X 和 Y 的总和
- 从列中获取 X^2 和 Y^2 的总和
- 然后用相关公式计算
我的想法: 将两个数组组合成一个多维数组可以减少计算的迭代次数,但需要先将它们组合起来。
所以我主要关心和询问的原因是创建多维数组并对其进行 1 次迭代是否需要更少的资源,或者将它们分开并迭代每个数组是否更好 - 进行 2 次迭代。
或者有没有更好的方法在不涉及迭代的数组上执行计算?
【问题讨论】:
-
在 PHP 中担心 CPU 和内存效率是弄巧成拙的。如果您的数组变得足够大而成为一个问题,那么您不应该使用 PHP。也就是说,答案取决于您最受限制的资源:CPU 还是内存。您可能远未达到两者的极限,因此没有必要担心。
-
这个项目在 RackSpace 云上,所以我按 CPU 周期计费 - 处理器时间和磁盘 I/O 的集合(以每月 10,000 次为基础)。因此,我想尽量减少应用程序使用的资源量。希望它会保持在这个限制之下,但有些数组很大。