zoukankan      html  css  js  c++  java
  • string与StringBuilder之性能比较

    知道“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的非独占分配数大,如果想进一步了解细节,可点击相应区域,结果如下

     接下去,你懂得。。。

  • 相关阅读:
    lilntcode-508-摆动排序
    lintcode-501-迷你推特
    lintcode-496-玩具工厂
    lintcode-491-回文数
    lintcode-488-快乐数
    lintcode-480-二叉树的所有路径
    lintcode-248-统计比给定整数小的数的个数
    ubuntu 镜像站部署
    [转发]以我的亲身经历为例,告诉大家写简历和面试的技巧(面向高级开发和架构师)
    镜像站nginx
  • 原文地址:https://www.cnblogs.com/Hollson/p/3276723.html
Copyright © 2011-2022 走看看