11 c++ optimization
可能重复:
C++:"std :: endl"vs"\n"
在Accelerated C++中,提到了两件事:
大多数系统花费大量时间将字符写入输出设备.因此,C++会累积要写入缓冲区的字符,并等待刷新缓冲区.
刷新缓冲区的一种方法是,如果我们通过使用明确告诉它这样做std::endl.
这使我想知道:很明显的好处是非常的一切小,不易察觉,除了最大的产出,但使用"\n"比使用速度更快std::endl,或者根本"\n"也刷新缓冲区?
使用'\n'不会刷新缓冲区,并且确实比使用std :: endl更快.
在典型的I/O中,输出在写入目标器件之前进行缓冲.这样,当写入慢速访问设备(如文件)时,它不必在每个字符后访问设备.刷新"冲洗"缓冲区到设备上,导致明确的性能开销.
-adapted from:C++ - endl和刷新缓冲区