博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
string与StringBuilder之性能比较
阅读量:4316 次
发布时间:2019-06-06

本文共 1067 字,大约阅读时间需要 3 分钟。

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

 接下去,你懂得。。。

 

转载于:https://www.cnblogs.com/Hollson/p/3276723.html

你可能感兴趣的文章
Posix消息队列实现机制
查看>>
win8/8.1 免密码登录设置
查看>>
Flask实战第53天:cms编辑轮播图功能完成
查看>>
Android相关的ADB命令
查看>>
c语言typedef关键字的理解
查看>>
vue click事件获取当前元素属性
查看>>
Netty与网络编程
查看>>
mybatis查询语句的背后之参数解析
查看>>
Hadoop工程师面试题(1)--MapReduce实现单表汇总统计
查看>>
如何使用Windows Library文件进行持久化
查看>>
查看和调试Qt源码(动态编译的QT也可进入源码)good
查看>>
关于DCMTK3.6.1源代码编译的总结
查看>>
我为什么离开神州泰岳
查看>>
高级环境编程要看的
查看>>
【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)
查看>>
浙江大学PAT上机题解析之1009. Product of Polynomials (25)
查看>>
Amazon的Fire Phone之于Android开发者
查看>>
(网页)习惯了CS回车操作人员,操作BS网页表单也是回车666
查看>>
(网页)checkbox框变大变小
查看>>
(网页)jQueryAJAXtimeout超时问题详解(转)
查看>>