【发布时间】:2011-11-04 08:29:18
【问题描述】:
我想增加缓冲区大小以提高 cout 的性能(它是 通常重定向到磁盘)
我能做到吗:
std::cout.rdbuf()->pubsetbuf(some_buffer, buffer_size);
还有
ios::sync_with_stdio(false);
这有意义吗?
编辑:我也在使用多个线程,所以我希望减少同步的需要。
【问题讨论】:
-
您可以尝试并对其进行基准测试,看看它是否有意义。如果确实如此,它的实现非常具体。
-
std::cout 缓冲区已经设计为最适合您的系统。您不太可能获得更好的性能(但请尝试),即使您发现改进可能不会转化为其他系统,因为每个标准库都将调整到该系统(或更具体地说是文件系统)。
标签: c++ io buffer iostream stdio