使用STD :: String和字符数组之间的选择

Choice between using std::string and character array

本文关键字:之间 数组 选择 STD String 使用 字符      更新时间:2023-10-16

我已经阅读了性能角色数组比std :: string更好/更快。但是我个人发现使用std ::字符串更加容易。

我目前正在编写一些数据库API,这些数据库将在数据库中获取/插入数据。在这些API中,我想使用STD字符串,但是我不确定由于我的选择,我会付出多少惩罚。我的API会查询数据库,因此将涉及网络IO。

的性能惩罚要比网络延迟(〜10 ms(要小得多,因为在这种情况下,我很乐意使用std :: string。

与几乎所有绩效问题一样,答案是要测量。现代std::string实现很可能不会成为将数据插入数据库的瓶颈。直到您进行了表明它们的分析数据,您可能最好不要担心。

您问:

的性能罚款要比网络延迟少得多(〜10 MS(,因为在这种情况下,我很乐意使用std :: string。

钝答案是

const char*std::string的快速比较:

const char* PROS

使用较小的空间,因为它不存储字符串的大小。这是我可以提出的唯一优势。明智的性能。

std::string Pros

存储字符串的大小,这通常会更好,因为这意味着不必扫描字符串才能知道大小,等等...(并避免副本使用const std::string&(

std::string是基本的:如果您忽略所谓的"小字符串优化"(另一个优势 - 您自己查找(,则const char*和CC_8(字符串的大小/lenght((字符串的大小/lenght(

因此,我不必担心性能(如果一切都正确处理( - 我的建议:不要担心性能 - 进行一些测试和分析,看看Profiler中显示的内容。话虽如此 - 知道"东西"是如何工作和执行的。