Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 增加cout的缓冲区_C++_Io_Buffer_Iostream_Stdio - Fatal编程技术网

C++ 增加cout的缓冲区

C++ 增加cout的缓冲区,c++,io,buffer,iostream,stdio,C++,Io,Buffer,Iostream,Stdio,引用 我想增加缓冲区的大小以提高cout的性能(它是 通常重定向到磁盘) 我可以做: std::cout.rdbuf()->pubsetbuf(some_buffer, buffer_size); 而且 ios::sync_with_stdio(false); 这有意义吗 编辑:我也使用多线程,所以我希望减少同步的需要 我将首先检查使任何较大的缓冲区大小变得无关紧要的刷新次数 特别是看,如果你有很多cout,你可以尝试一下,并对它进行基准测试,看看它是否有意义。std::cout缓冲区

引用

我想增加缓冲区的大小以提高cout的性能(它是 通常重定向到磁盘)

我可以做:

std::cout.rdbuf()->pubsetbuf(some_buffer, buffer_size);
而且

ios::sync_with_stdio(false);
这有意义吗


编辑:我也使用多线程,所以我希望减少同步的需要

我将首先检查使任何较大的缓冲区大小变得无关紧要的刷新次数


特别是看,如果你有很多cout,你可以尝试一下,并对它进行基准测试,看看它是否有意义。std::cout缓冲区已经被设计为适合您的系统的最佳缓冲区。您不太可能获得更好的性能(但请尝试),即使您发现了改进,这也可能不会转化为其他系统,因为每个std库都将调整到该系统(或更具体地说是文件系统)。替换
是,我使用多线程,我希望这可以减少同步,而不必手动添加队列。@Didier Trosset,是的,我不使用endl:pap。经过进一步测试,它确实对多线程情况产生了一些影响。大约5%。