簡體   English   中英

普林克里面的普林克?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM