C# StopWatch的BUG????
生活随笔
收集整理的這篇文章主要介紹了
C# StopWatch的BUG????
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C# StopWatch的BUG????
//BUG??????//使用StopWatch測試運行時間//兩段測試A和B//測試結(jié)果受測試順序影響,后測要比先測耗時長了許多static void TestKeyIntStr(){var idict = new Dictionary<int, string>();var sdict = new Dictionary<string, string>();for(int i=0; i<1000000; i++){var key = i * 2 + 1;var v = i * i + "";idict.Add(key, v);sdict.Add(key + "", v);}//測試 Avar timer = new Stopwatch();timer.Start();var it = idict[2001];var t1 = timer.ElapsedTicks;timer.Stop();//測試 Bvar timer2 = new Stopwatch();timer2.Start();var st = sdict["2001"];var t2 = timer2.ElapsedTicks;timer2.Stop();Console.WriteLine("t1: {0},t2:{1}", t1, t2);}?補充說明:這應(yīng)該是由于上面的計時都非常短,由于時間很短,短到幾十個時鐘周期(在我的機器上大約0.000001秒)時就會有誤差了
通過上面的測試說明:對于dictionary的查詢,string鍵和數(shù)值鍵效率幾乎一樣,應(yīng)該是基于hash實現(xiàn)的
posted on 2018-04-09 14:48 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的C# StopWatch的BUG????的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TrinityCore3.3.5编译过程
- 下一篇: UGUI BUG