C 标准库 iostream 的性能缓慢
虽然 C 标准库的 iostream 可能没有明确要求性能较差,但有关 C 性能的技术报告表明其处理的某些方面可能会导致
标准规定的低效率
根据报告,iostreams 实现通常涉及在多个方面分发处理。由于与每个构面操作相关的开销,这可能会导致固有的低效率。
构面和 Write()
虽然构面可能无法直接在 write( 中使用) ) 操作,分析您的 ostringstream 代码表明 std::basic_streambuf::xsputn() 花费了大量时间。此函数执行各种检查和更新,从而导致额外的处理开销。
现代编译器中的优化
报告提到某些编译器可能会采用预处理或高级链接技术来缓解与 iostream 相关的低效率问题。然而,目前尚不清楚有多少编译器已经整合了这些优化。
替代实现
在实践中,像 Visual C 2010 和 gcc 4.3.4 这样的编译器表现出具有竞争力的性能使用 Vector
实际注意事项
在测试中观察到的 iostream 性能缓慢源于最坏的写入情况重复小块数据。在实际应用中,处理更大的数据块可以减少开销的影响,并允许 iostream 充分利用其内存安全和类型安全的设计优势。
以上是为什么 C iostream 性能有时很慢,何时需要替代方案?的详细内容。更多信息请关注PHP中文网其他相关文章!