不要 new 一个 char 数组当缓冲区
💡
原文中文,约800字,阅读约需2分钟。
📝
内容提要
性能调优研究表明,使用std::make_unique<char[]>分配内存时,尽管编译器进行了优化,但仍会调用memset,导致效率低下。改用malloc后,性能提升显著。结论是,在不需要初始化的情况下,malloc优于new。
🎯
关键要点
- 性能调优研究发现,使用std::make_unique<char[]>分配内存时效率低下。
- std::make_unique不仅分配内存,还会初始化char对象,导致性能问题。
- 即使编译器优化为memset,调用memset仍然消耗时间。
- 将内存分配改为malloc后,性能提升显著,达到十几倍。
- 结论是,在不需要初始化的情况下,malloc优于new。
➡️