随笔 - 17  文章 - 0  评论 - 13  阅读 - 63018 

知道“StringBuilderstring性能强”好多年了,近日无聊病发作,就把这两个家伙给动了手术:

using System;

using System.Text;

namespace ConsoleApplication1

{

    classProgram

    {

        staticvoid Main(string[] args)

        {

            int start = Environment.TickCount;    //计时打点

            fun1();

            int middle = Environment.TickCount;  //计时打点

            fun2();

            int end = Environment.TickCount;  //计时打点

            Console.WriteLine("string         运行时间 {0} ", 0.001 * (middle - start));

            Console.WriteLine("StringBuilder  运行时间 {0} ", 0.001 * (end - middle));

            Console.ReadKey();

        }

       

        //fun1fun2是两个结构功能相同的无聊耗时方法

        privatestaticvoid fun1()

        {

            for (int i = 0; i < 1000; i++)

            {

                string s = "";     

                for (int j = 0; j < 200; j++)

                {

                    s += "Outer index = ";

                    s += i;

                    s += " Inner index = ";

                    s += j;

                    s += " ";

                }

            }

        }

 

        privatestaticvoid fun2()

        {

            for (int i = 0; i < 1000; i++)

            {

                StringBuilder s = newStringBuilder();

                for (int j = 0; j < 200; j++)

                {

                    s.Append("Outer index = ");

                    s.Append(i);

                    s.Append("Inner index = ");

                    s.Append(j);

                    s.Append(" ");

                }

            }

        }

    }

}

可见区别之大。

用vs自带的性能分析工具分析如下(过程比较慢):

查看函数详细信息:

可见fun1明显比fun2的非独占分配数大,如果想进一步了解细节,可点击相应区域,结果如下

 接下去,你懂得。。。

 

posted on   布史  阅读(861)  评论(1编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示