对对象数组进行操作还是对包含参数数组的单个对象进行操作?

Operating on an Array of objects versus operating on a single object containing arrays of parameters?

我正在考虑制作一个寻路系统,每个节点都必须包含位置数据、与之相关的移动成本等。哪种方法性能更好,因为我的目标平台是移动设备。

哪个在性能方面更好?

这个:

public Class Test{
int x;
float y;
string z;
}

.
.
.

Test[] tests = new Test[100];

for(int i=0; i< 100; ++i){
tests[i].x = 0;
tests[i].y = 0.5f;
tests[i].z = "Hello:";
}

或者这样:

public Class Test{
int[] x;
float[] y;
string[] z;
}

.
.
.

Test tests = new Test;
test.x = new int[100];
test.y = new float[100];
test.z = new string[100];

for(int i=0; i< 100; ++i){
tests.x[i] = 0;
tests.y[i] = 0.5f;
tests.z[i] = "Hello:";
}

使用 struct 而不是 class 并且它会给你性能,如果你想使用 class 比第二个比第一个有更好的性能我认为是因为堆中有 1 个对象而不是 100 个对象

在您的示例中,性能差异并不重要,但第一个变体在代码可读性和灵活性方面更好。

您可以使用 struct 而不是 class 来避免额外的取消引用操作,这可能会提高性能。