[英]Plinq inside Plinq?
假設我有一個DataTable
。
var dt = getDataTable();
然后我做
Parallel.For (0, dt.Rows.Count, i => Foo (dt.Rows[i]));
Foo
是一個在row
上進行一些計算的函數。
Foo 還應該使用Plinq
嗎? 或者不應該?
(在分割后分成核心是沒有意義的。)
Foo還應該使用Plinq嗎? 或者不應該?
通常,您通常只希望在“最高級別”進行並行化。 通過制作更大的工作項,您可以最大化總吞吐量,因為您減少了安排工作所需的開銷。
如果您在Parallel.For
循環中使用PLINQ,則會增加開銷(為了安排工作項),但無法利用更多內核,因此您可能會降低整體性能。 因此,在這種情況下,我不建議在Foo
內部使用PLINQ(前提是DataTable
有足夠的行來很好地並行化)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.