C#字符串连接和StringBuilder字符串拼接性能测试

一、C#字符串连接和StringBuilder字符串拼接性能测试

Environment.TickCount,距离系统启动时间为基准,对比代码执行时间。

/// <summary>
/// 实例测试,C#字符串链接和StringBuilder的性能
/// </summary>
static void StringTest()
{
    // 获取系统启动后经过的毫秒数。
    int start = Environment.TickCount;
    /******使用字符串连接构建字符串******/
    for (int i = 0; i < 200; i++)
    {
        string s = "";
        for (int j = 0; j < 1000; j++)
        {
            s += "Outer index=";
            s += i;
            s += "Inner index=";
            s += j;
            s += " ";
        }
    }
    int middle = Environment.TickCount;
    Console.WriteLine("字符串拼接时间:{0}秒", (middle - start) / 1000);
    /******使用StringBuilder构建字符串******/
    for (int i = 0; i < 20; i++)
    {
        StringBuilder builder = new StringBuilder();
        for (int j = 0; j < 1000; j++)
        {
            builder.Append("Outer index=");
            builder.Append(i);
            builder.Append("Inner index=");
            builder.Append(j);
            builder.Append(" ");
        }
    }
    int end = Environment.TickCount;
    Console.WriteLine("StringBuilder拼接时间:{0}毫秒,约等于{1}秒", (end - middle), (end - middle) / 1000);
}

结果对比



特别说明:

对于有大量字符串拼接操作或者说在大量循环操作中,需要拼接字符串的时候,就必须考虑性能问题。

解决方案之一就是使用StringBuilder类。

    //
    // 摘要:
    //     表示可变字符字符串。此类不能被继承。
    [ComVisible(true)]
    [DefaultMember("Chars")]
    public sealed class StringBuilder : ISerializable


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值