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

     接下去,你懂得。。。

  • 相关阅读:
    eclipse下mysql编程
    mysql简单操作一
    Mysql ubuntu下的安装卸载
    c++ 上机实验题
    Android BottomSheet:以选取图片为例(2)
    Android BottomSheet:便捷易用的底部滑出面板(1)
    如何绘制caffe网络训练曲线
    10+资深软件架构师谈计算机专业——填高考志愿必读
    添物不花钱学计算机及编程(预备篇)
    Android StatusBarUtil:设置Android系统下方虚拟键键盘透明度
  • 原文地址:https://www.cnblogs.com/Hollson/p/3276723.html
Copyright © 2011-2022 走看看