提高ofstream的性能?
问题出现的原因是使用std::endl
导致i/o性能下降,因为它会刷新流。为了避免这个问题,应该使用'\n'
来代替std::endl
。此外,避免打开和关闭多个流也会有帮助。
解决方法是使用std::ios::sync_with_stdio(false)
来提高性能。但需要注意的是,如果在代码中同时混合使用了c
IO和c++
IO,则不应该使用这个方法。如果在线程中使用了read()
函数,而主线程中使用了C++的iostream,则也不建议使用这个方法。
另一种解决方法是完全使用C语言的IO,或者完全切换到C++ IO。在C++中可以使用read函数来实现相同的功能,并且可以利用优化来提高性能。