关于字符串为空的几个性能测试

时间:2010-02-06 12:29:24  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:;string.Empty是一个Static的属性,使用时不分配存储空间,而在用""时,系统会分配一个长度为空的存储空间。不过编译系统应该会优化,也就是说,比如你程序中有10个地方用到了"",但好的编译系统应该引用的是同一个对象。所以用""也就是浪费一个对象空间而已。   实战:   测试程序如下:   namespace te...
  正文:今天突然有兴做了两下有关字符串为空的性能测试,与大家分享!结果如下:
  两种赋值方式的比较:
  string str="";
  string str=string.Empty;
  理论上讲:
  string.Empty是一个Static的属性,使用时不分配存储空间,而在用""时,系统会分配一个长度为空的存储空间。不过编译系统应该会优化,也就是说,比如你程序中有10个地方用到了"",但好的编译系统应该引用的是同一个对象。所以用""也就是浪费一个对象空间而已。
  实战:
  测试程序如下:
  namespace testEmpty
  {
   class Program
   {
   static void Main(string[] args)
   {
   Test test = new Test();
   test.testEmpty();
   test.testEqualEmpty();
   Console.Read();
   }
   }
   class Test
   {
   public void testEmpty()
   {
   string str;
   for (int i = 0; i < 10000; i++)
   {
   str = "";
   }
   }
   public void testEqualEmpty()
   {
   string str;
   for (int i = 0; i < 10000; i++)
   {
   str = string.Empty;
   }
   }
   }
  }
  
   测试过程是分别将赋值语句str=""和str=string.Empty用两个函数执行10000次,所用时间如下所示:
  
  所以说:单独执行testEmpty()执行10000次用了0.262669毫秒,单独执行testEqualEmpty()执行0.026849毫秒。前者是后者的10倍.
  
  下面介绍的是几种判断语句的比较:
  我想到的所有的判断空字符串的语句就这几种了,大家还有其它方法的欢迎讨论!
  str == ""
  str.Equals("")
  str==string.Empty
  str.Equals(string.Empty)
  str .Length==0
  
  测试程序如下:
  using System;
  using System.Collections.Generic;
  using System.Text;
  
  namespace testEmpty
  {
   class Program
   {
   static void Main(string[] args)
   {
   Test test = new Test();
   test.test1();
   test.test2();
   test.test3();
   test.test4();
   test.test5();
   Console.Read();
   }
   }
   class Test
   {
   string str = string.Empty;
   public void test1()
   {
   for (int i = 0; i < 10000; i++)
   {
   if (str == "")
   {
   Console.WriteLine("1 This string is emput");
   }
   }
   }
   public void test2()
   {
   for (int i = 0; i < 10000; i++)
   {
   if (str.Equals(""))
   {
   Console.WriteLine("2 This string is emput");
   }
   }
   }
   public void test3()
   {
   for (int i = 0; i < 10000; i++)
   {
   if (str==string.Empty)
   {
   Console.WriteLine("3 This string is emput");
关于字符串为空的几个性能测试》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12827.html


关键字:

关于《关于字符串为空的几个性能测试》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td