我想了解PLINQ。因此,我正在查詢其中包含102915個產品的數據庫。爲什麼PLINQ會給LINQ查詢帶來更糟糕的性能?
但令人震驚的是,我看到PLINQ需要18秒,普通查詢只需要4秒。要了解,我已閱讀這篇文章,PLINQ Performs Worse Than Usual LINQ。 但是,我仍然不明白爲什麼這花了這麼多秒。
要刪除頭頂,我刪除了PLINQ中的.order(m.sku)
,但它仍然給出相同的結果。這裏是LINQ和PLINQ版本的代碼。
PLINQ版本
shootersEntities model = new shootersEntities();
var IsOnline = cBOnline.Checked;
var IsDeleted = cBDeleted.Checked;
Stopwatch s = new Stopwatch();
s.Start();
var p = from m in model.products.AsParallel()
where ((m.productOnline == IsOnline) || (m.deleted == IsDeleted))
select new { m.sku, m.productCode, m.quantity };
var list = p.ToList();
s.Stop();
MessageBox.Show((s.ElapsedMilliseconds/1000).ToString());
dataGridView1.DataSource = list;
LINQ版本
shootersEntities model = new shootersEntities();
var IsOnline = cBOnline.Checked;
var IsDeleted = cBDeleted.Checked;
Stopwatch s = new Stopwatch();
s.Start();
var p = from m in model.products
where ((m.productOnline == IsOnline) || (m.deleted == IsDeleted))
select new { m.sku, m.productCode, m.quantity };
var list = p.ToList();
s.Stop();
MessageBox.Show((s.ElapsedMilliseconds/1000).ToString());
dataGridView1.DataSource = list;
收藏中有多少物品?他們看起來怎麼樣? – 2015-04-01 06:36:50
http://www.albahari.com/threading/part5.aspx - 此鏈接閱讀使用PLINQ的指南。 – sribin 2015-04-01 11:50:00