我正在優化我的代碼,發現問題是我的變量。由於我喜歡有一個有組織和可讀的代碼,不同的變量有不同的類,我只是將它們稱爲Main方法,並在那裏進行計算。優化我的代碼和由此造成的問題(C#)
這樣我的每個輸出都花了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方法中從其他類定義的局部變量?
這個問題似乎是題外話,因爲它屬於在[代碼審查(http://codereview.stackexchange.com/) – DGibbs
如果你不想複製,不。傳遞數組作爲參數。由於它們已經是參考文獻,因此不會進行復制。 –
你不能。方法中定義的局部變量只對該方法可見。重構你的代碼是否會更好,以便計算在單獨的公共/共享方法/類中完成,並返回結果,然後可以從主方法調用它。 – HaukurHaf