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

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

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

      基礎(chǔ)才是重中之重~Dictionary<K,V>里V的設(shè)計決定的性能

      回到目錄

      字典對象Dictionary<K,V>我們經(jīng)常會用到,而在大數(shù)據(jù)環(huán)境下,字典使用不當(dāng)可能引起性能問題,嚴(yán)重的可能引起內(nèi)在的溢出!

      • 字典的值建議為簡單類型,反正使用Tuple<T>
      • 字典的鍵在查找時,時間復(fù)雜度為O(1),性能不會有任何問題,所以不要愿望它

      下面代碼是對500萬的字典進(jìn)行測試,首先賦值,然后取出一個隨機(jī)機(jī),性能在毫秒級

          static void Draw()
              {
                  int count = 5000000;
                  Console.WriteLine("test:{0} feeds", count);
      
                  List<GoldCoinInfo> list = new List<GoldCoinInfo>();
                  list.Add(new GoldCoinInfo { Id = 100, GoldValue = 5, LeftCount = count, TotalCount = count });
                  var dic = new Dictionary<int, int>();
                  int _index = 0;
                  Stopwatch sw = new Stopwatch();
                  sw.Restart();
                  foreach (var gold in list)
                  {
                      for (int j = 0; j < gold.LeftCount; j++)
                      {
                          dic.Add(_index, gold.Id);
                          _index++;
                      }
                  }
                  sw.Stop();
                  Console.WriteLine("step1:{0} ms", sw.ElapsedMilliseconds);
                  sw.Restart();
                  var prizeIndex2 = GenerateRandom(dic.Keys.Max(), 1).FirstOrDefault();
                  Console.WriteLine("step3:{0} ms,value:{1}", sw.ElapsedMilliseconds, dic[prizeIndex2]);
                  sw.Stop();
              }

      測試結(jié)果

      而如果value使用了tuple<t>類型,那性能就一落千丈了!

             var dic = new Dictionary<int, Tuple<int, int>>();
                  int _index = 0;
                  Stopwatch sw = new Stopwatch();
                  sw.Restart();
                  foreach (var gold in list)
                  {
                      for (int j = 0; j < gold.LeftCount; j++)
                      {
                          dic.Add(_index, new Tuple<int, int>(gold.Id, gold.GoldValue));
                          _index++;
                      }
                  }

      在取隨機(jī)機(jī)時,我們有時使用NewId()這試,但這種開銷依然很大,不建議大家使用,這種只適合在特定的場合用,如EF對IQueryable結(jié)果集動態(tài)隨機(jī)數(shù)時,代碼如下

         /// <summary>
          /// sql函數(shù)的擴(kuò)展類
          /// </summary>
          public static class SqlFunctionExtensions
          {
      
              #region 功能方法
              /// <summary>
              /// 在linq to entity中使用SqlServer.NEWID函數(shù)
              /// </summary>
              public static Guid NewId()
              {
                  return Guid.NewGuid();
              }
              #endregion
      
              #region 擴(kuò)展方法
              /// <summary>
              /// 隨機(jī)排序擴(kuò)展方法
              /// </summary>
              /// <typeparam name="T"></typeparam>
              /// <param name="source"></param>
              /// <returns></returns>
              public static IQueryable<T> OrderByNewId<T>(this IEnumerable<T> source)
              {
                  return source.AsQueryable().OrderBy(d => NewId());
              }
              #endregion
      
          }

      對技術(shù)的研究我們在繼續(xù),有時,模棱兩可是不行的!

      有時,應(yīng)該較較真!

      回到目錄

       

      posted @ 2017-04-11 15:48  張占嶺  閱讀(915)  評論(4)    收藏  舉報
      主站蜘蛛池模板: 中文字幕亚洲综合久久2020 | 亚洲综合精品中文字幕| 男女性杂交内射女bbwxz| 少妇被粗大猛进进出出| 国产播放91色在线观看| 自拍偷自拍亚洲精品情侣| 精品人妻午夜一区二区三区四区| 亚洲第一狼人天堂网伊人| 国产午夜福利免费入口| 全黄h全肉边做边吃奶视频| 亚洲另类在线制服丝袜国产| 护士张开腿被奷日出白浆| 亚洲高清日韩专区精品| 亚洲精品无amm毛片| 日韩人妻无码精品久久久不卡 | 精品无码一区二区三区电影| 丁香五月亚洲综合在线国内自拍| a级亚洲片精品久久久久久久| 国产精品亚洲一区二区三区| 欧美日韩v| 国产精品深夜福利在线观看| 国内不卡不区二区三区| 国产特色一区二区三区视频| 在线天堂最新版资源| 怡红院一区二区三区在线| 91精品国产蜜臀在线观看| 久久午夜无码鲁丝片午夜精品| 日韩免费美熟女中文av| 亚洲欧洲精品一区二区| 黄网站色视频免费观看| 国产AV无码专区亚洲AWWW| 国产亚洲精品自在久久蜜TV| 亚洲人成网站77777在线观看| 丰满高跟丝袜老熟女久久| 人妻少妇久久中文字幕| 国产成人亚洲精品狼色在线| 亚洲欧美中文日韩V在线观看| 新兴县| 国产69成人精品视频免费| 日韩av综合中文字幕| 国产成人精品午夜福利|