为中间计算和性能声明变量

时间:2015-05-08 13:37:57

标签: c# performance-testing variable-declaration

对不起,这是一个如此愚蠢的问题,但我只是要问这个问题。我有一个运行数十亿计算的程序,我试图让它运行得更快。在我的程序中,我为中间计算声明了很多变量。例如,在伪代码中:

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))
    }
}

我知道它看起来很可怕,我的直觉告诉我它并不重要,但我只想看看其他人是否同意。

1 个答案:

答案 0 :(得分:4)

不要试图以这种方式“优化”性能。现代编译器将从两个版本生成相同的代码,因此在性能方面没有任何差异,但您的代码将无法读取。

一般情况下,第一种情况更具可读性,这就是首选。它清楚地命名临时变量,这有助于更好地理解代码。而且,调试起来要容易得多。