【发布时间】:2012-12-06 17:11:21
【问题描述】:
我正在为自己制作一个程序,突然出现了这个问题。这个程序处理图形,所以我必须牢记性能。
如果我使用多个变量或使用带有硬编码索引的数组,性能是否会有所不同?如果有,哪个更好?
举例说明:
R = (X * 3.2406) + (Y * -1.5372) + (Z * -0.4986);
G = (X * -0.9689) + (Y * 1.8758) + (Z * 0.0415);
B = (X * 0.0557) + (Y * -0.2040) + (Z * 1.0570);
或
RGB[0] = (XYZ[0] * 3.2406) + (XYZ[1] * -1.5372) + (XYZ[2] * -0.4986);
RGB[1] = (XYZ[0] * -0.9689) + (XYZ[1] * 1.8758) + (XYZ[2] * 0.0415);
RGB[2] = (XYZ[0] * 0.0557) + (XYZ[1] * -0.2040) + (XYZ[2] * 1.0570);
提前致谢。
【问题讨论】:
-
如果存在性能差异(我对此表示怀疑),那么它不太可能成为您程序的瓶颈。使用最简单、最易读的方法,然后转到真正的性能问题所在。
-
变量在维护方面更好。在使用数组时,您可能会使用错误的索引来获取值并且很难识别问题。
-
@muruga 它发生了好几次。但是我改成单个变量,因为某些东西严重减慢了程序的速度。但我不确定它是什么。
-
@GuiRitter 我真的很怀疑。我不认为变量真的会减慢速度(可能会有点过头),但是您必须非常仔细地查看整个程序,而不是尝试进行一些分析。
标签: java arrays performance hardcoded