Netbeans发布模式C ++的速度是Visual Studio 2012的两倍?

时间:2014-04-01 01:05:05

标签: c++ linux performance gcc netbeans

我有一些在Visual Studio(MSVC编译器)上运行的代码,每个消息的平均速度为127个CPU周期。我把它移植到Linux(Mint 16),Netbeans 7.4和GCC 4.8。该代码符合C ++标准。

我必须做的唯一更改是使用内联GCC版本替换__rdtsc()。要运行代码,我将Netbeans更改为Release模式,进入属性并更改设置,以便这是一个“性能发布”。然后我点击绿色箭头,程序每个消息平均占用229个CPU周期 - 几乎是MSVC时间的两倍。

我是否正确运行Netbeans发布模式?我知道在Visual Studio上你必须按ctrl + f5才能获得正确的性能释放。我不确定是否有使用Netbeans的同等错误?我希望Linux上的代码更快!

除了原始数组之外,代码不使用任何容器。

定时:

我使用的Windows:

unsigned long long start = __rdtsc();
//Code
unsigned long long finish = __rdtsc();

Linux,除了我使用以外,与上面相同:

#if defined(__i386__)

static __inline__ unsigned long long rdtsc(void)
{
    unsigned long long int x;
    __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
    return x;
}

#elif defined(__x86_64__)

static __inline__ unsigned long long rdtsc(void)
{
    unsigned hi, lo;
    __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
    return ( (unsigned long long)lo)|( ((unsigned long long)hi)<<32 );
}

#endif

我从这个答案得到了:https://stackoverflow.com/a/9887899/997112

0 个答案:

没有答案