在写扩展方法时,看到有人用==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 password expire notices

    /usr/local/webserver/tomcat6/logs/logbak/zsxxw.log.2015-03-21.txt:2015-03-22 00:47:26,366 ORA-28002: ...

  2. 如何不让oracle使用linux的swap分区

    经常看到swap分区被使用,被缓存的内容本来是为了增加命中率,结果去不断换入换出,导致本地磁盘IO增加,影响访问速度.所以在内存充足的情况下,如果我们觉得不需要使用swap分区的时候,那就要想办法尽量 ...

  3. Rescue(bfs)

    Rescue Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...

  4. 安装Linux系统到u盘

    第一步:首先插入u盘到电脑主机usb接口处(建议插入到主机箱后置的usb接口).然后打开UltraISO软件,再打开选择须要写入u盘的Ubuntu 10.04或者其它版本号的Linux系统的iso镜像 ...

  5. UI设计师不可不知的安卓屏幕知识

    不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,也曾在公司内部做过相关的讲座,在此,我将此部分知识重新梳理出来分享给大家! 1.了 ...

  6. 深入理解JVM : Java垃圾收集器

    如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现. Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商.不同版本的虚拟机所提供的垃圾收集器都可能会有很大差 ...

  7. (四)Android中Context的理解与使用

    一.Context的作用 Context可用于访问全局资源. public class MainActivity extends Activity { private TextView tv; @Ov ...

  8. Find Minimum in Rotated Sorted Array,Find Minimum in Rotated Sorted ArrayII

    一:Find Minimum in Rotated Sorted Array Suppose a sorted array is rotated at some pivot unknown to yo ...

  9. 音量强度转分贝db

    //LPDIRECTSOUNDBUFFER如何设置声音大小?> //取值范围是0 ~ -10000, 0最大,-10000最小,单位是分贝 //0-100音量转换成分贝 double decib ...

  10. nginx1.9.4 +php 5.5.29+yii2.0配置手册

    nginx1.9.4 +php 5.5.29+yii2.0配置手册 目录 一.    php5.5.29安装配置    2 二.    nginx1.9.4安装配置    2 三.    yii2.0 ...