.NET深入学习笔记(2):C#中判断空字符串的4种方法性能比较与分析

Posted on 2009-02-05 22:28 Frank Xu Lei 阅读(732) 评论(0)   编辑 收藏 网摘 所属分类: .NET深入学习笔记
-

偶然看到<C#中判断空字符串的3种方法性能分析 >作者:清清月儿  主页:http://blog.csdn.net/21aspnet/           时间:2007.4.28

写的一篇关于字符串为空判断方法的性能分析文章,实验结果作者已经给出,结论是使用.length==0判断的效率最高,但是文章的结尾只有一句话,感觉不够详细,所以自己写下这个文章,算一个补充和学习吧.

程序代码执行的硬件环境:

CPU

Intel T2300 1.66GHz

内存

Kingston DDR2 667 1G

硬盘

80G 5400 8m

     测试的软件环境:

OS

Windows XP Pro

IDE

VS 2008 RTM

     测试的代码如下:

定义了3个变量,分别调用4种方法,进行100w次判断,记录测试时间:

 

Code

 

代码的运行结果如下:

结果分析来看,调用string的length==0作比较,不论字符串是否为空,此方法的效率最高,此点与清清月儿的结果一致;

string的isNullOrEmpty()方法的效率基本不变,无论字符串是否有值;

== string.Empty== ""两种方法在3个变量测试的实验中效率相对较低,但是两者再和对方比较的时候会出现效率降低的情况,见上图;

    原因是什么呢?我们来看看对应的il代码:

 

Code

 

两者的差别由于推送到堆栈上的内容不同,前者是静态共享值推送到堆栈,后者是字符串对象的地址推送到堆栈.

造成的比较差别.另外字符串值是否相等的资料大家可以看看园子里缘清的文章,有很好的参考价值.地址:http://www.cnblogs.com/isline/archive/2009/02/04/1383799.html.希望大家一起交流!

谢谢!~

 


 

 

老徐的博客

【作者】:Frank Xu Lei

【地址】:http://www.cnblogs.com/frank_xl/archive/2009/02/05/1384915.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值