zoukankan      html  css  js  c++  java
  • C#中判断空字符串的3种方法性能分析

    3种方法分别是:
    string a="";
    1.if(a=="")
    2.if(a==String.Empty)
    3.if(a.Length==0)

    3种方法都是等效的,那么究竟那一种方法性能最高呢?本人用实验说明问题。

    建立3个aspx页面(为什么用网页,主要是利用Microsoft Application Center Test

    WebForm1.aspx

    private void Page_Load(object sender, System.EventArgs e)
    {
       
    string a="";
       
    for(int i=0;i<=1000000;i++)
       {
          
    if(a=="")
          {
          }
       }
    }

     

    WebForm2.aspx

    private void Page_Load(object sender, System.EventArgs e)
    {
       
    string a="";
       
    for(int i=0;i<=1000000;i++)
       {
          
    if(a==String.Empty)
          {
         
          }
       }
    }


    WebForm3.aspx

    private void Page_Load(object sender, System.EventArgs e)
    {
       
    string a="";
       
    for(int i=0;i<=1000000;i++)
       {
          
    if(a.Length==0)
          {
          }
       }
    }


     在Microsoft Application Center Test 下建立3个压力测试项目:

    测试结果:

    WebForm1.aspx----------if(a=="")


    WebForm2.aspx-------if(a==String.Empty)


    WebForm3.aspx-------if(a.Length==0)

    所以3种方法量化的结果是98,105,168:

    方法 结果
    if(a=="") 98
    if(a==String.Empty) 105
    if(a.Length==0) 168

    那么为什么if(a.Length==0)最快呢?
    因为整数判断等于最快,没有经过实例化等复杂的过程。

    所以:建议大家判断字符串是否为空用 if(a.Length==0)。

  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/oec2003/p/754193.html
Copyright © 2011-2022 走看看