我最近注意到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++;
}
}
编辑:我应该澄清我正在使用发行版。