VC ++:std :: endl执行时间奇怪

时间:2018-07-28 17:45:28

标签: c++ visual-studio visual-c++ std

我最近注意到Visual Studio 2017 Community Edition中的奇怪行为。当在VS中运行时,以下VC ++代码(在“空项目”中创建)的输出速度在执行到达第二while循环时会大大提高速度。

很好奇,我使用std::chrono::system_clock::now()进行了一些基准测试。第一个while循环的执行时间超过7秒;第二个while循环的执行时间少于3。

然后我进行了更多测试,并注意到当我同时移除两个std::endl时,奇怪的行为消失了;他们都在约1.5-2秒内执行。

是什么原因导致这种行为?

#include <iostream>
int main() {
    int i = 0;
    while (i <= 9999) { 
        std::cout << i << std::endl;
        i++;
    }

    while (i <= 19999) {
        std::cout << i << std::endl;
        i++;
    }
}

编辑:我应该澄清我正在使用发行版。

0 个答案:

没有答案