StringBuilder到底比String快多少?

以前早就听人说过在进行大量字符运算的时候,尽量使用StringBuilder而不是String.原本我以为这即便是快也不会快到哪里去,于是今晚兴起就随便写一个小代码来证明,真是不看不知道,一看吓一跳.

代码是这样的:

static void Main(string[] args) {
       DateTime d1=new DateTime();
       DateTime d2=new DateTime();  
   
       StringBuilder sb1=new StringBuilder();
       String sb2="";
   
       d1=DateTime.Now;    
       for (int i=0;i<=60000;i++)
       {
            sb1.Append("Append");    
       }
       d2=DateTime.Now;//  
       double tt=d2.Ticks-d1.Ticks;
       Console.WriteLine("StringBulider消耗的时间={0}",tt);
      
       Console.WriteLine("程序正在执行.....");    

       d1=DateTime.Now;    
       for (int i=0;i<=60000;i++)
       {
            sb2=sb2+"Append";    
       }
       d2=DateTime.Now;  
       double tt2=d2.Ticks-d1.Ticks;
       Console.WriteLine("String消耗的时间={0}",tt2);
       Console.WriteLine("StringBulide比String块{0}倍",tt2/tt);
       Console.WriteLine("程序结束");   
       Console.Read();
}

 最后运行结果为:

而且运行出这段代码在我
AMD sp 2600+ 
1GM
上足足等了3分多钟!
看来StringBuilder的优越性还是显而易见的.

在写代码的过程中的重点就是时间间隔的捕捉,DateTime在Nt系统上能精确到100 毫微秒
时间: 2024-07-31 19:15:03

StringBuilder到底比String快多少?的相关文章

&quot;蓝色基因&quot;千万亿次:到底有多快?

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 大约在三年前,美国能源部下属的国家核安全管理局选择在著名的洛斯阿拉莫斯国家实验室(Los Alamos National Laboratory)开发超级计算机Roadrunner,两年后,IBM帮助他们实现了这一当时看起来像是"奢望"的构想,在花费了1亿美元,经过三个阶段实施之后,世界上第一台"混合"超级计算机Roadrunn

5G到底有多快? 将与物联网结合触发新风口

5G到底有多快?和4G相比有什么新效能?4G还未完全普及的当下,对于5G的讨论却已经大范围地开始.与相结合,5G发展的想象空间巨大,将触发新的风口. 5G到底有多快? 将与物联网结合触发新风口 "5G的系统架构和4G会很不一样.过去几个月,高通可以实现每秒1Gb/s下行的速度,5G可以实现几Gb/s的速率."在3月19日中国发展高层论坛上,高通总裁德里克 阿博利在演讲中如是表示. 再将视线转移至今年2月世界移动通信大会,在那里,5G技术已经是无线业界的首要议题.根据经济学人(The E

「玩一玩」量化GDI+:快速Bitmap读写像素——到底有多快?

问题描述 发个帖子然后蒸馒头吃--------这是一个古老的技巧:使用Bitmap类时经常会用到GetPixel和SetPixel,但是这两个方法直接使用都比较慢,所以一般都会使用LockBits/UnlockBits将位图在内存中锁定,以加快操作速度.MSDN上的标准参考是这样的:privatevoidLockUnlockBitsExample(PaintEventArgse){//Createanewbitmap.创建位图Bitmapbmp=newBitmap("c:\fakePhoto.j

内存数据库到底有多快?

  并发量太高的应用中(比如10分钟内插入300w条记录),数据库往往难堪重负,在没有银子实现服务器集群/负载均衡/分布式存储的情况下,可以尝试一下把数据库做一个临时副本全部放在内存中处理,完成操作后,再同步到硬盘的物理数据库中. 那么,把数据库放在内存中到底有多快? 晚上抽空试了一下: 步骤1:先用Ramdisk之类的工具,划出一块内存当作虚拟硬盘.步骤2:先在sql2005中新建一个空库db,然后分离,把分离后的数据库文件复制到虚拟硬盘中,并附加回数据库,至此完成数据库在内存中的建立.步骤3

【转】StringBuilder类与 String类的区别(C#)

StringBuilder类与 String类的区别(C#) 2007-12-03 15:21 在找工作的时候,去了些公司,避免不了要面试和笔试.不过一般最起初的是笔试.我印象中有这样有一道题目:StringBuilder类与 String类的区别?那时候我不太清楚这两个类的区别,今天在看代码的时候,看到同事也用了StringBuilder类.于是我就上网查查了资料,也想总结下StringBuilder类与 String类的区别.学计算机语言的人一定要明白哦,说不定那天你去找工作了,也会遇到这个

指尖上的核战争 我们到底需要多快的手机?

性能强劲+智能环保=三星Exynos曾几何时,消费者在选购手机时更多的是看中产品的外观.系统.功能.但是当智能手机进一步发展之后,人们的选购参考要素也随之发生了较大改变.一部分人群逐渐的将关注的重心迁移到了决定手机能否流畅运行的硬件性能上,而性能的优良与否又与手机所搭载的处理器有 着直接的关系.不过目前来看,多数消费者对于手机处理器并不是十分了解,只能简单的通过单核.双核.四核来区分处理器的性能.为了让您能全面的了解手机硬 件信息,本文中我们将会着重解析目前智能机平台主流处理器芯片厂商及相关产品

用 StringBuilder 类替代 String

在ASP.NET中我们经常要用到文本对象,一般的操作是定义一个string mystr,然后用mystr+="aaaa"之类的运算来累加.其实还有一个效率高得多的方法:使用 System.Text.StringBuilder 类,该类提供了更高的性能.举例:我们通常会这么写:String begin_query = "select UPPER(MachineName) As MachineName, "+"LOWER(MachineOwner) As Ma

小扎所说的5G到底有多快?

所有的人都希望自己的网速快点.快点.再快点儿,各大通信公司也是纷纷在此发力.智能手机.智能手表.智能家居以及智能车载系统的运行,都需要稳定和高速的网络支持.就是在这种对无线带宽(编者注:带宽,可以简单理解为网速)需求较高的情况下,5G技术应运而生. 5G与3G和4G一样,都是更高无线带宽需求催生的产物.现在,需要无线网络的已经不仅仅只是你的电脑和手机,已经有越来越多的设备需要联网,比如说,家用电器.智能门禁.监控探头.可穿戴设备甚至你家狗狗的智能项圈. Gartner公司(编者注: Gartne

Kotlin VS Java:编译速度大比拼,到底谁更快?

把一个Java应用程序转换为Kotlin,编译时间要多久? 这是关于Kotlin的一系列文章.分为三个部分. 第一部分讨论了从Java转换到Kotlin.第二部分是我对Kotlin的看法. 在前面的文章中, 我讨论了把Android 应用从Java 100%转换为Kotlin . Kotlin代码比Java的简洁,更易于维护,所以我认为转换是值得的. 但有些人不想试用Kotlin,因为他们担心它编译可能没有Java快. 这个关注点绝对是正确的,如果变得编译很慢,没有人愿意转换他们的代码. 所以,