C# StringBuilder和MemoryStream性能问题
求助大佬操作大量要修改的字符串可以使用StringBuilder,也可以使用MemoryStream结合Streamwriter。
哪个性能更快一些呢?
for example ? goldli 发表于 2022-7-13 12:25
for example ?
比如这样的代码
public class MsExample
{
MemoryStream ms;
StreamReader sr;
long readEnd = 0;
StreamWriter sw;
public MsExample()
{
ms = new MemoryStream();
sr = new StreamReader(ms);
sw = new StreamWriter(ms);
}
public void Write(string str)=> sw.Write(str);
public string Read()
{
sw.Flush();
readEnd = ms.Position;
char[] buffer = new char;
sr.Read(buffer, 0, (int)(readEnd));
return new string(buffer);
}
public void Clear()
{
ms.Position = 0;
readEnd = 0;
}
}
public class SBExample
{
StringBuilder sb = new StringBuilder();
public void Write(string str)=> sb.Append(sb);
public string Read() => sb.ToString();
public void Clear() => sb.Clear();
} FRFRough 发表于 2022-7-13 13:18
比如这样的代码
public class MsExample
{
是这个public void Write(string str)=>sb.Append(str)
打错了 既然你有了示例代码就写个程序试验一下呗,每种方法循环执行上万次,输出运行时间 stringBuilder, 这个用于频繁变化的字符串。
MemoryStream,一看就知道,这是一个流。 流会不断的变大。 所以,这个不是用来处理小型字符串的。
由于没有更明确的使用场景,没办法给出更有效的建议。 LogerLaw 发表于 2022-7-13 14:00
既然你有了示例代码就写个程序试验一下呗,每种方法循环执行上万次,输出运行时间
GC干扰,时间难说的很 FRFRough 发表于 2022-7-13 15:34
GC干扰,时间难说的很
配合dotTrace工具分析
页:
[1]