2
有人可以解釋爲什麼這些方法之間存在20倍的巨大差異!
2次和4次之間的差異可以接受我的邏輯,但我不明白爲什麼會發生20次。爲什麼第一個linq的行爲比第二個行動快20倍[獲得最大值]
代碼:
//Method 1 which took 00:00:00.82
DateTime at = DateTime.Now;
for (int i = 0; i < 1000; i++) {
var x = (from m in brd.MohreHa select new { m, am = m.GetPossibleMoves().Count() }).OrderByDescending(o => o.am).First().m;
}
var att = DateTime.Now - at;
//Method 2 which took 00:00:15.31
DateTime bt = DateTime.Now;
for (int i = 0; i < 1000; i++) {
var y = brd.MohreHa.First(m => m.GetPossibleMoves().Count() == brd.MohreHa.Max(a => a.GetPossibleMoves().Count()));
}
var btt = DateTime.Now - bt;
謝謝。你知道有什麼更好的方法來運行這個查詢1000次,這比我的方法快嗎? – 2013-02-27 18:45:37
@Mahdi如果你不使用LINQ,它會更快,並且只是跟蹤「最大」項目...這將完全避免排序。 – 2013-02-27 18:47:33