为中间计算和性能声明变量
Declaring variables for intermediate calculations and performance
抱歉,这是一个愚蠢的问题,但我不得不问这个。我有一个程序可以进行 运行 数十亿次计算,我正在努力使其更快地达到 运行。在我的程序中,我声明了很多用于中间计算的变量。例如,在伪代码中:
public bool FunctionThatGetsCalledInMain(manyparameters)
{
for (int i = 0; i < 10000000; i++)
{
int x = bigFunctionThatReturnsAnInt(i,manyparameters)
double y = bigFunctionThatReturnsADouble(i,manyparameters)
string z = bigFunctionThatReturnsAString(i,manyparameters)
bool b = someFunctionOfXYZ(x,y,z)
}
}
我想知道我是否可以通过执行以下操作来提高性能:
public bool FunctionThatGetsCalledInMain(manyparameters)
{
for (int i = 0; i < 10000000; i++)
{
bool b = someFunctionOfXYZ(bigFunctionThatReturnsAnInt(i,manyparameters),bigFunctionThatReturnsADouble(i,manyparameters),bigFunctionThatReturnsAString(i,manyparameters))
}
}
我知道这看起来很可怕,我的直觉告诉我这并不重要,但我只是想看看其他人是否同意。
不要尝试 "optimize" 这样的表现。现代编译器将从两个版本生成相同的代码,因此在性能方面不会有任何差异,但您的代码将不可读。
一般来说,第一种情况更具可读性,这就是首选的原因。它清楚地命名临时变量,有助于更好地理解代码。而且,它更容易调试。
抱歉,这是一个愚蠢的问题,但我不得不问这个。我有一个程序可以进行 运行 数十亿次计算,我正在努力使其更快地达到 运行。在我的程序中,我声明了很多用于中间计算的变量。例如,在伪代码中:
public bool FunctionThatGetsCalledInMain(manyparameters)
{
for (int i = 0; i < 10000000; i++)
{
int x = bigFunctionThatReturnsAnInt(i,manyparameters)
double y = bigFunctionThatReturnsADouble(i,manyparameters)
string z = bigFunctionThatReturnsAString(i,manyparameters)
bool b = someFunctionOfXYZ(x,y,z)
}
}
我想知道我是否可以通过执行以下操作来提高性能:
public bool FunctionThatGetsCalledInMain(manyparameters)
{
for (int i = 0; i < 10000000; i++)
{
bool b = someFunctionOfXYZ(bigFunctionThatReturnsAnInt(i,manyparameters),bigFunctionThatReturnsADouble(i,manyparameters),bigFunctionThatReturnsAString(i,manyparameters))
}
}
我知道这看起来很可怕,我的直觉告诉我这并不重要,但我只是想看看其他人是否同意。
不要尝试 "optimize" 这样的表现。现代编译器将从两个版本生成相同的代码,因此在性能方面不会有任何差异,但您的代码将不可读。
一般来说,第一种情况更具可读性,这就是首选的原因。它清楚地命名临时变量,有助于更好地理解代码。而且,它更容易调试。