C 标准是否要求 IOStreams 性能较差?
虽然问题提出了对 C 标准库 IOStreams 性能的担忧,但答案重点介绍了 2006 年 C 性能技术报告的见解。
该报告表明该标准确实不要求 IOStreams 实现效率低下。它概述了使用预处理和更智能的链接器提高效率的潜力。然而,它也承认此类优化可能尚未广泛实施。
基准分析
问题包括比较 IOStreams 与自定义缓冲区管理性能的基准。答案重点是分析执行 ostringstream 测试的结果。它将主要瓶颈确定为 std::basic_streambuf::xsputn,它在大量检查和缓冲区更新后调用 std::copy。
分析和结论
答案认为基准测试中观察到的缓慢性能可能是由于使用了最坏的情况。测试中使用的小数据块会导致检查和更新的开销不成比例。在数据块较大的现实场景中,这些成本不会那么重要。
答案强调了考虑 IOStream 的好处的重要性,例如内存安全和类型安全,这些好处来自于牺牲一些性能。它表明,可以通过优化更大的数据块并欣赏 IOStreams 提供的附加功能的价值来缓解感知的性能问题。
以上是C 的标准 IOStreams 设计本质上很慢吗?的详细内容。更多信息请关注PHP中文网其他相关文章!