对我的应用程序的分析表明,它在字符串分配上花费了近 5% 的 CPU 时间。在很多很多地方,我正在从 64MB 字符缓冲区制作 C++ std::string 对象。问题是,缓冲区在程序运行期间永远不会改变。我对std::string(const char *buf,size_t buflen)
调用的分析是正在复制字符串,因为缓冲区可能会在字符串生成后发生变化。这不是这里的问题。有没有办法解决这个问题?
编辑:我正在处理二进制数据,所以我不能只是传递char *s
. 此外,我会因为总是扫描 NULL 而产生大量开销,而这是std::string
避免的。