2006-01-16 [長年日記]

[C++] Comparison of Strings Implementations in C++ language

STLportとGNU libstdc++のstd::basic_stringのパフォーマンスの比較など。結論だけ引用すると、

This tests show that
  • for processing long strings (greater than 50K) the best choice is ropes;
  • if you use strings of size 1K-50K then the best choice is strings from GNU libstdc++; GNU libstdc++ will be good too if you only pass strings as parameters, without modifictions;
  • if you modify strings with sizes less then 1K, the strings from STLport are for you.

だそうで。

ちなみに、STLportのstd::basic_stringは固定長バッファ*1+ディープコピーで、libstdc++はリファレンスカウンタによる実装です。

*1  文字列が短いときにだけ使われる

[]