经过1万阶二维数组测试,交错数组的速度优于多维数组。
交错数组快 3 倍左右,分别为 800 / 2200 ms。
注意:多维数组采取了行获取优化。若不优化,则为 1700 ms。
代码如下:
/// <summary>
/// 比较多维数组和交错数组的速度。
/// </summary>
static public void CompareArraySpeed()
{
int length = 10000;
double[][] jiaocuo = new double[length][];
for (int i = 0; i < length; i++)
{
jiaocuo[i] = new double[length];
}
DateTime start = DateTime.Now;
for (int i = 0; i < length; i++)
{
var aa = jiaocuo[i];
for (int j = 0; j < length; j++)
{
aa[j] = 1;
var a = aa[j] * aa[j];
aa[j] = a;
}
}
var span = DateTime.Now - start;
Console.WriteLine(span.TotalMilliseconds + " ms");
double[,] duowei = new double[length, length];
start = DateTime.Now;
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length; j++)
{
duowei[i, j] = 1;
var a = duowei[i, j] * duowei[i, j];
duowei[i, j] = a;
}
}
span = DateTime.Now - start;
Console.WriteLine(span.TotalMilliseconds + " ms");
}
尚无评论!