我正在努力优化我的代码并发现问题是我的变量。由于我喜欢有组织且可读的代码,不同的变量有不同的类,我只是将它们称为Main方法,并在那里进行计算。
这样我的每个输出都需要12分钟。定义了局部变量,输出所需时间达到6分钟,这是一项非常成就。 我的问题是什么:
我不想更改所有代码,因此在计算之后,存储在局部变量中的结果被复制到原始变量中。这个过程(复制结果)需要20%的时间,我该如何改进呢?
Static void Main(String[] args)
{
Vector3D temp=new Vector3D();
double[,] Xvelocity= new double[nx,ny];
double[,] Yvelocity= new double[nx,ny];
//
// some calculations on local variables
//
// saving results back in the original variables
for (int i = 1; i <nx; i++)
{
for (int j = 1; j <ny; j++)
{
// Local variables: Xvelocity[i,j], Yvelocity[i,j], Temp[i,j]
temp.X=Xvelocity[i,j];
temp.Y=Yvelocity[i,j];
theSpace.TheCells[i, j, 0].Velocity=temp;
theSpace.TheCells[i, j, 0].Tempreture=Temp[i,j];
}
}
}
如果我不想将结果复制到原始数组,我怎样才能访问其他类中Main方法中定义的局部变量?
答案 0 :(得分:1)
多维数组在大多数编程语言中很少有效。尝试使用锯齿状数组(数组数组)而不是多维数组。