如何使用TMemoryStream连接字符串

时间:2013-11-20 14:21:58

标签: delphi delphi-xe4

如何使用TMemoryStream连接UTF-16字符串?我知道TStringBuilder存在这样的东西,但它在多线程场景中表现不佳,Eric Grange在his blog上表现得很好。正如他下面的一张花式图表所示。

fancy chart

1 个答案:

答案 0 :(得分:3)

将字符串连接成这样的流:

Stream.Write(Pointer(str1)^, Length(str1)*SizeOf(Char));
Stream.Write(Pointer(str2)^, Length(str2)*SizeOf(Char));

一些意见:

  1. 您可能需要使用比TMemoryStream更自定义的流。
  2. 字符串构建器代码可能不是您的瓶颈。埃里克的基准测试必然是人为的。
  3. 使用更好的内存管理器可能比滚动自己的字符串构建器更能提高性能。