许多分析表明,当需要性能(速度)时,C ++流不是执行文件或文本字符串操作的最佳方式。 尽管如此,标准流仍然是保证类型安全的好方法。
从我读过的,大部分问题是因为流实现必须1)创建/复制很多小对象2)完全通用(不管理char和wchar的方式相同吗?)等。
无论如何,我在想,也许某些C ++ 0x会允许实现者至少限制对象创建/复制,也许还有其他功能可以进行其他性能改进,也许可以达到printf()性能? / p>
是否有直接影响?或者我们是否必须等待新的实施?或者我们还需要一个新的(类似STL的)流库吗?
答案 0 :(得分:3)
您可能对my question here中的某些效果比较感兴趣。在常见的实现中,即使是C ++标准库流API中的最低级函数也非常慢,并且查看例如源代码。 Visual C ++的stringbuf
类,我没有看到复制小的临时对象。所以右值参考不太可能有用。
AFAICT,C ++ iostream缓慢的主要原因是库开发人员坚持I / O是瓶颈的思维方式,所以没有必要担心I / O库的性能。但I / O绝对不是瓶颈。