在写扩展方法时,看到有人用==null这个方法,说快,上网找了些资料,最后在csdn的博客上看到了一篇文章,说实测是后两者快,于是我也试着做了一个程序运行了一下,却发现这样的结果:

我测试了一个,发现结果相反:
第一次:
方法:(String.IsNullOrEmpty( s )): 用时=::02.3015335 进入次数=
方法:(s == null || s.Length == ): 用时=::02.6747835 进入次数=
第二次:
方法:(String.IsNullOrEmpty( s )): 用时=::02.3115417 进入次数=
方法:(s == null || s.Length == ): 用时=::02.6607726 进入次数=
第三次:
方法:(String.IsNullOrEmpty( s )): 用时=::02.3205477 进入次数=
方法:(s == null || s.Length == ): 用时=::02.6607744 进入次数= 第N次:
方法:(String.IsNullOrEmpty( s )): 用时=::02.2965310 进入次数=
方法:(s == null || s.Length == ): 用时=::02.6797865 进入次数= 我实现的测试和楼主的刚好相反了。
我的环境:
win8 64位
8G内存

测完之后我想了一下,这只是一个简单的判断,实际情况应该不至于出现这种逆转性的反差吧?

上面的测试我是在VS里直接运行测试的,我觉得有必要部署一下在IIS里测试一下,于是马上动手,测试结果如下:

方法:(String.IsNullOrEmpty( s )): 用时=::00.3462293 进入次数=
方法:(s == null || s.Length == ): 用时=::00.2911963 进入次数= 方法:(String.IsNullOrEmpty( s )): 用时=::00.3442286 进入次数=
方法:(s == null || s.Length == ): 用时=::00.3172130 进入次数= 方法:(String.IsNullOrEmpty( s )): 用时=::00.3452307 进入次数=
方法:(s == null || s.Length == ): 用时=::00.2911941 进入次数= 方法:(String.IsNullOrEmpty( s )): 用时=::00.3462308 进入次数=
方法:(s == null || s.Length == ): 用时=::00.2921954 进入次数= 方法:(String.IsNullOrEmpty( s )): 用时=::00.3452311 进入次数=
方法:(s == null || s.Length == ): 用时=::00.2931936 进入次数=

可以看到,这次的结果跟楼主的情况相符合了。

找到的文章地址:http://blog.csdn.net/meifage2/article/details/6621658

IsNullOrEmpty和s == null || s.Length == 0哪个快的更多相关文章

  1. java——arr == null || arr.length == 0

    这两者是不同的: arr == null; int[] arr = null; arr.length == 0; int[] arr =new int[0];

  2. Java: arr==null vs arr.length==0

    当 arr 是一个array时,写Java开始的corner case常常会写类似下面的语句: if(arr == null || arr.length == 0){ return 0; } 其实这是 ...

  3. 数组中array==null和array.length==0的区别

    //代码public class Test1 { public static void main(String[] args) { int[] a1 = new int[0]; int[] a2 = ...

  4. jvm源码解读--02 Array<u1>* tags = MetadataFactory::new_writeable_array<u1>(loader_data, length, 0, CHECK_NULL); 函数引入的jvm内存分配解析

    current路径: #0 Array<unsigned char>::operator new (size=8, loader_data=0x7fd4c802e868, length=8 ...

  5. mysql 将null转代为0

    mysql 将null转代为0 分类: Mysql2012-12-15 11:56 6447人阅读 评论(1) 收藏 举报 1.如果为空返回0 select ifnull(null,0) 2.如果为空 ...

  6. NULL, NUL, EOF, '\0',0区别

    NULL: 定义为0或0L或(void *)0,用于指示一个指针值是空,即什么都不指:'\0': 用且只用字符串结束符;NUL : 0x00,0值字符,可以用于结束ASCII字符串,和'\0'类似,但 ...

  7. Javascript中的undefined、null、""、0值和false的区别总结

    在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库字段的空值DBN ...

  8. sql语句常用功能(null值转换为0)

    COALESCE(规格,' ') 或者 COALESCE(规格,0) select * from ( ) 客户,() 物料号,p4.name 内部批次,p4.outsidename 外部批次,p1.库 ...

  9. Golang http post error : http: ContentLength=355 with Body length 0

    参考:https://stackoverflow.com/questions/31337891/net-http-http-contentlength-222-with-body-length-0 问 ...

随机推荐

  1. 如何将Oracle安装为Linux服务

    方法一:使用oracle自带的启动和关闭脚本 1. oracle用户修改/etc/oratab 文件: $ vi /etc/oratab orcl:/oracle/app/product/10.2.0 ...

  2. 【HDU】4092 Nice boat(多校第四场1006) ——线段树 懒惰标记

    Nice boat Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) To ...

  3. 【Android Training UI】创建自定义Views(Lesson 1 - 创建一个View类)

    发布在我的网站 http://kesenhoo.github.io/blog/2013/06/30/android-training-ui-creating-custom-views-lesson-1 ...

  4. Metropolis Hasting算法

    Metropolis Hasting Algorithm: MH算法也是一种基于模拟的MCMC技术,一个非常重要的应用是从给定的概率分布中抽样.主要原理是构造了一个精妙的Markov链,使得该链的稳态 ...

  5. 卸载mysql残留

    一.在控制面板中查看是否有mysql,有则进行卸载.或执行同样版本号的mysql安装文件,选择"remove"进行卸载. 二.卸载mysql后其服务仍在,解决的方法: 点击&quo ...

  6. OpenGL研究2.0 计算圆

    OpenGL研究2.0 计算圆 DionysosLai2014-06-18 在游戏中.常常有些地方涉及到一些圆的轨迹计算,例如一些转轴类的游戏,人物一般在角色转轴上面运动.这时,我们就要时刻计算角色的 ...

  7. Android长方形图片生成正圆形,以及矩形图片生成圆角

    一般要做正圆形图片,只能是正方形的基础上才能实现,否则就变成椭圆了,下面说说如何使长方形的图片生成正圆形图片 废话不多说,没图没真相,先上图吧: 原图:  变成正圆后:  下面上代码: public ...

  8. 编程算法 - 最长上升子序列问题 代码(C)

    最长上升子序列问题 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 有一个长为n的数列a. 请求出这个序列中最长上升子序列的长度. 最长上升子序 ...

  9. JS判断终端浏览器类型

    根据终端浏览器类型不懂加载不同的JS或CSS文件 <script> var browser = { versions: function () { var u = navigator.us ...

  10. python基础:测量python代码的运行时间

    Python社区有句俗语:“python自己带着电池” ,别自己写计时框架.Python 2.3 具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间. timeit模块 ti ...