C++ 写入速度比操作本身慢?

C++ 写入速度比操作本身慢?,c++,performance,visual-studio-2012,stack,C++,Performance,Visual Studio 2012,Stack,我正在努力理解我的函数的行为。 我的代码是在Visual Studio 2012中用C++编写的。在64位Windows 7上运行。我正在使用二维浮点数数组。当我计时我的函数时,我发现如果我停止将结果写入输出指针,函数的时间会减少10倍或更多。这是否意味着写作很慢? 以下是一个例子: void TestSpeed(float** pInput, float** pOutput) { UINT32 y, x, i, j; for (y = 3; y < 100-3;

我正在努力理解我的函数的行为。 我的代码是在Visual Studio 2012中用C++编写的。在64位Windows 7上运行。我正在使用二维浮点数数组。当我计时我的函数时,我发现如果我停止将结果写入输出指针,函数的时间会减少10倍或更多。这是否意味着写作很慢? 以下是一个例子:

void TestSpeed(float** pInput, float** pOutput)
{    
    UINT32 y, x, i, j;
    for (y = 3; y < 100-3; y++)
    {       
        for (x = 3; x < 100-3; x++)
        {
            float fSum = 0;
            for (i = y - 3; i <= y+3; i++)
            {               
                for (j = x-3; j <= x+3; j++)
                {
                    fSum += pInput[y][x]*exp(-(pInput[y][x]-pInput[i][j])*(pInput[y][x]-pInput[i][j]));
                }
            }
            pOutput[y][x] = fSum;
        }
    }

}
void测试速度(浮点**pInput,浮点**pOutput)
{    
UINT32 y,x,i,j;
对于(y=3;y<100-3;y++)
{       
对于(x=3;x<100-3;x++)
{
浮点数fSum=0;

对于(i=y-3;i你的代码做了很多操作,它需要时间。根据你对输出所做的事情,你可以考虑输入矩阵的对角化或分解。或者你可以在YOR输出中寻找n倍于另一个值的值,并且不计算EESE的指数。一组计算结果被丢弃,根本不做那些计算。如果你告诉了哪种编程语言,这将是有益的。@ JuhanaC++。我还更新了我的问题。谢谢你指出。是的,它更快。优化器将完全删除函数,因为它没有副作用。它是无限Fas。ter,不仅仅是x10:)谢谢大家的评论。谢谢你们的建议。