Я пытаюсь понять PLINQ. Поэтому для этого я запрашиваю базу данных, в которой есть 102915 продуктов.Почему PLINQ дает худшую производительность после запроса LINQ?
Но, к сожалению, я вижу, что PLINQ занимает 18 секунд, когда обычный запрос занимает всего 4 секунды. Чтобы понять, я прочитал эту статью, PLINQ Performs Worse Than Usual LINQ. Но все же я не мог понять, почему это заняло так много секунд.
Чтобы удалить из головы, я удалил .order(m.sku)
в PLINQ, но при этом он дает тот же результат. Здесь приведен код для 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;
Сколько предметов в коллекции? На что они похожи? –
http://www.albahari.com/threading/part5.aspx - эту ссылку вы прочитали руководства по использованию PLINQ. – sribin