来源 关于枚举类型转换的效率测试

[ 2009-6-25 13:54:23 | 作者: 一线风 | 阅读:847 | 评论:0 | 天气: sunny | 心情: normal ]
Font Size: Large | Medium | Small

权限系统里要有一些枚举和Int之间的转换,现测试一下,看看情况.呵~ 情况还是不错的!

1000000次测试结果:
4 <第三代权限判断方法>
255 
4 <第二代权限判断方法>
28 <第一代权限判断方法>


看来枚举与int之间的转换消耗可以忽略呀.

 

C#代码
  1. void T14()   
  2.        {   
  3.            Stopwatch timer = new Stopwatch();   
  4.            timer.Start();   
  5.            TT1();   
  6.            timer.Stop();   
  7.            Response.Write(timer.ElapsedMilliseconds.ToString() + "\n<br>");   
  8.   
  9.            Stopwatch timer2 = new Stopwatch();   
  10.            timer2.Start();   
  11.            TT2();   
  12.            timer2.Stop();   
  13.            Response.Write(timer2.ElapsedMilliseconds.ToString() + "\n<br>");   
  14.   
  15.            Stopwatch timer3 = new Stopwatch();   
  16.            timer3.Start();   
  17.            TT3();   
  18.            timer3.Stop();   
  19.            Response.Write(timer3.ElapsedMilliseconds.ToString() + "\n<br>");   
  20.   
  21.            Stopwatch timer4 = new Stopwatch();   
  22.            timer4.Start();   
  23.            TT4();   
  24.            timer4.Stop();   
  25.            Response.Write(timer4.ElapsedMilliseconds.ToString() + "\n<br>");   
  26.   
  27.        }   
  28.   
  29.   
  30.        void TT1()   
  31.        {   
  32.            bool t = false;   
  33.            for (int i = 0; i < 1000000; i++)   
  34.            {   
  35.                 t = ((int)ManagePowerType.CategoryManage & (int) ManagePowerType.UserGroupManage) == (int) ManagePowerType.UserGroupChange;   
  36.            }   
  37.        }   
  38.   
  39.        void TT2()   
  40.        {   
  41.   
  42.            ArrayList list = new ArrayList();   
  43.            for (int i = 0; i < 1000000; i++)   
  44.            {   
  45.                list.Add(i);   
  46.            }   
  47.   
  48.        }   
  49.   
  50.        void TT3()   
  51.        {   
  52.            bool t = false;   
  53.           for (int i = 0; i < 1000000; i++)   
  54.            {   
  55.                t = (ManagePowerType.CategoryManage & ManagePowerType.UserGroupManage) == ManagePowerType.UserGroupChange;   
  56.            }   
  57.   
  58.        }   
  59.   
  60.        class Test { int t = 1; public int T { get { return t; } } }   
  61.   
  62.        void TT4()   
  63.        {   
  64.            bool t = false;   
  65.            for (int i = 0; i < 1000000; i++)   
  66.            {   
  67.                t = "IAMINT".IndexOf('A') > 0;   
  68.            }   
  69.        }   
[一线风 最后修改于 2009-6-25 15:19:24]
分类:项目文档
Tag: C# 测试 枚举