<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      值類型和引用類型在hashtable里面性能比較分析1 -GetHashCode()

      上篇文章中,測試了一下值類型數據和引用類型數據在hashtable中插入和讀取的性能,測試結果和本人預期也有一些出入,msdn有一篇文章介紹在box,unbox的時候,性能關系為:class>interface>int,原文:Open the Box! Quick,進一步分析了上篇測試,發現其實影響測試性能還有其它幾個方面的因素,本篇就針對不同數據類型在GetHashCode()上面的消耗
      測試程序如下;
       1 System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
       2            stopWatch.Start();
       3            for (int i = 0; i < CompareCount; i++)
       4            {
       5                int hashCode = i.GetHashCode();
       6            }

       7            stopWatch.Stop();
       8            System.Diagnostics.Stopwatch stopWatch2 = new System.Diagnostics.Stopwatch();
       9            stopWatch2.Start();
      10            for (int i = 0; i < CompareCount; i++)
      11            {
      12                int hashCode = i.ToString().GetHashCode();
      13            }

      14            stopWatch2.Stop();
      15            System.Diagnostics.Stopwatch stopWatch3 = new System.Diagnostics.Stopwatch();
      16            stopWatch3.Start();
      17            for (int i = 0; i < CompareCount; i++)
      18            {
      19                int hashCode = new Test().GetHashCode();
      20            }

      21            stopWatch3.Stop();
      22            long t1 = stopWatch.ElapsedTicks;
      23            long t2 = stopWatch2.ElapsedTicks;
      24            long t3 = stopWatch3.ElapsedTicks;
      25            Console.WriteLine(t1.ToString());
      26            Console.WriteLine(t2.ToString());
      27            Console.WriteLine(t3.ToString());
      28            Console.WriteLine((double)(t2/t1));
      29            ArrayList list = new ArrayList();
      30        }

      結果表,我暫且不畫在這上面了,因為比較多,而且不好排版,我只說一下結果,int類型的數據比字符串類型的在GetHashCode()的效率上要高50多倍,比Class的也高50-70倍
      察看了GetHashCode()的實現
      Int32
           
      1public override int GetHashCode()
      2{
      3      return this;
      4}

      5
      6

      String

       1[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
       2public override unsafe int GetHashCode()
       3{
       4      fixed (char* text1 = ((char*this))
       5      {
       6            char* chPtr1 = text1;
       7            int num1 = 0x15051505;
       8            int num2 = num1;
       9            int* numPtr1 = (int*) chPtr1;
      10            for (int num3 = this.Length; num3 > 0; num3 -= 4)
      11            {
      12                  num1 = (((num1 << 5+ num1) + (num1 >> 0x1b)) ^ numPtr1[0];
      13                  if (num3 <= 2)
      14                  {
      15                        break;
      16                  }

      17                  num2 = (((num2 << 5+ num2) + (num2 >> 0x1b)) ^ numPtr1[1];
      18                  numPtr1 += 2;
      19            }

      20            return (num1 + (num2 * 0x5d588b65));
      21      }

      22}

      23
      24 
      25

      而object的實現方法,我 不太理解:
      1public virtual int GetHashCode()
      2{
      3      return object.InternalGetHashCode(this);
      4}

      5
      6 
      7[MethodImpl(MethodImplOptions.InternalCall)]
      8internal static extern int InternalGetHashCode(object obj);
      9

       object的具體處理方法
      而從int,string類型算法可以輕易看出效率差別,雖然string類型還有unsafe .

      而且,值類型必須重寫GetHashCode。
      從這里可以看出,在上次測試中,GetHashCode幫了int類型不少忙呀!

      posted @ 2006-10-20 09:38  Robin Zhang  閱讀(1997)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 新龙县| 人妻中文字幕一区二区视频| 十四以下岁毛片带血a级| 亚洲一区成人在线视频| 中文字幕人妻中出制服诱惑| 亚洲精品第一国产综合精品| 亚洲成在人线在线播放无码| 中文字幕久久波多野结衣av| 亚洲欧美成人久久综合中文网 | 久久99久国产麻精品66| 国产精品无码专区| 国产综合久久久久久鬼色| 国产欧美日韩精品丝袜高跟鞋| 麻豆亚州无矿码专区视频| 中文字幕精品无码一区二区| 99久久精品久久久久久婷婷| 国产一精品一av一免费| 一区二区国产高清视频在线| 国内精品自线在拍| 国产福利片无码区在线观看| 玩弄放荡人妻少妇系列| 亚洲欧洲日产国产av无码| 99中文字幕国产精品| 97se亚洲国产综合自在线观看| 自拍偷区亚洲综合第二区| 日韩丝袜欧美人妻制服| 无码日韩精品一区二区三区免费| 亚洲欧美日韩国产精品一区二区| 青青青青国产免费线在线观看| 亚欧洲乱码视频在线专区| 日本一区二区三区东京热| 性欧美老妇另类xxxx| 国产精品综合av一区二区国产馆 | 香蕉EEWW99国产精选免费| 精精国产xxxx视频在线| 国产精品一区二区久久毛片| 国产中文字幕在线精品| 平乡县| 日本极品少妇videossexhd| 欧美一级高清片久久99| 亚洲人成网站在线观看播放不卡|