gpt4 book ai didi

c++ - 基准换行符与 std::endl

转载 作者:太空宇宙 更新时间:2023-11-04 13:45:18 26 4
gpt4 key购买 nike

我正在阅读 “\n” or '\n' or std::endl to std::cout? .尽管大家一致认为选择什么并不重要,但我还是决定构建一个人为的测试来衡量每个程序的执行速度。这是我的简单程序:

#include <iostream>

int main()
{
for (std::size_t i = 0; i < ITERS; ++i)
{
#ifdef VER1
std::cout << "\n";
#endif
#ifdef VER2
std::cout << '\n';
#endif
#ifdef VER3
std::cout << std::endl;
#endif
}
}

使用十亿次迭代和 -O3 并将输出重定向到 /dev/null/,这些是我的结果:

"\n"
0:30.96

'\n'
0:31.66

使用-O2:

"\n"
0:32.96

'\n'
0:31.54

为什么更高的优化级别会使 '\n' 变慢

最佳答案

使用此设置,您很可能会测量哪个测试运行碰巧被线程调度程序中断的时间最长。另外,我想您可能会在写入真实文件而不是/dev/null 时获得非常不同的时间。

关于c++ - 基准换行符与 std::endl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26290059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com