小编Nat*_*idt的帖子

Visual Studio错误D8016:'/ ZI'和'/ O2'命令行选项不兼容

Visual Studio错误D8016:'/ ZI'和'/ O2'命令行选项不兼容

我第一次使用C++进行优化.当我'构建解决方案'时,我不断收到此错误.在属性页面中,我将配置设置为Release under project/properties/c ++/optimization我尝试了除disable之外的所有选项.在project/properties/c ++/General下我还尝试了'Debug Information Format'下的所有选项(假设'None'是一个不错的选择?).我认为它可能与链接器设置有关,但仍然不知道该怎么做.

c++ optimization visual-studio-2013

16
推荐指数
1
解决办法
2万
查看次数

可以更改自动分配内存的范围会影响性能吗?

我有一个程序涉及对少数函数的大量调用,每个函数在本地分配固定大小的数组(总共大约几百个字节).假设将所有分配移动到main然后传递指针会获得更好的速度是否正确?换句话说,从堆栈指针中减去线性或恒定时间,并且,如果它需要恒定时间,那么与将函数传递给函数相比,成本是多少?

我做了一个小速度测试.示例#1运行得快一点.

示例#1

using namespace std;
#include <iostream>
int f(int* a){

    // do stuff

    return 0;
}

int main(){

    int a[1000];

    int x;
    for (int i = 0; i < 50000; ++i){
        x=f(a);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

例#2

using namespace std;
#include <iostream>

int f(){

    int a[1000];

    // do stuff...

   return 0;
}

int main(){

    for (int i = 0; i < 50000; ++i){
        x=f();
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ performance memory-management

0
推荐指数
1
解决办法
157
查看次数

GCC优化?

我正在使用GCC 4.8.1.我试图通过将其放入嵌套循环来对某些代码的速度进行基准测试,如下例所示.每当我这样做时,它会在最短的时间内(如.02秒)执行,使用-03或不进行任何优化,无论有多少次迭代.有什么理由吗?我确信它工作正常,因为值总是正确的,如果我printf在循环中使用,那么它会按预期运行.

int main()
{
    int i,j,k;
    int var;
    int big_num = 1000000;
    int x[1];

    for (i = 0;i<big_num;++i){
        for (j = 0;j<big_num;++j){
            for (k = 0;k<big_num;++k){
               // any short code fragment such as:
               var = i - j + k; 
               x[0] = var;
            }
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c optimization gcc

-1
推荐指数
1
解决办法
195
查看次数