吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 949|回复: 7
收起左侧

[求助] C# StringBuilder和MemoryStream性能问题

[复制链接]
FRFRough 发表于 2022-7-13 11:58
求助大佬

操作大量要修改的字符串可以使用StringBuilder,也可以使用MemoryStream结合Streamwriter。
哪个性能更快一些呢?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

goldli 发表于 2022-7-13 12:25
for example ?
 楼主| FRFRough 发表于 2022-7-13 13:18

比如这样的代码
    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[readEnd];
            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:50
FRFRough 发表于 2022-7-13 13:18
比如这样的代码
    public class MsExample
    {

是这个public void Write(string str)=>sb.Append(str)
打错了
LogerLaw 发表于 2022-7-13 14:00
既然你有了示例代码就写个程序试验一下呗,每种方法循环执行上万次,输出运行时间
goldli 发表于 2022-7-13 14:15
stringBuilder, 这个用于频繁变化的字符串。
MemoryStream,一看就知道,这是一个流。 流会不断的变大。 所以,这个不是用来处理小型字符串的。
由于没有更明确的使用场景,没办法给出更有效的建议。
 楼主| FRFRough 发表于 2022-7-13 15:34
LogerLaw 发表于 2022-7-13 14:00
既然你有了示例代码就写个程序试验一下呗,每种方法循环执行上万次,输出运行时间

GC干扰,时间难说的很
LogerLaw 发表于 2022-7-13 16:04
FRFRough 发表于 2022-7-13 15:34
GC干扰,时间难说的很

配合dotTrace工具分析
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-12 19:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表