當前我正在使用LocalReport。渲染爲90K記錄創建PDF。使用普通的'for'循環,僅需要大約4個小時來創建PDF。我嘗試了很多選擇。爲90K記錄生成PDF
試過並行。帶有和不帶有MaxDegreeOfParallelism並設置不同值的Foreach。我的系統中有2個處理器。通過設置MaxDegreeOfParallelism(MDP)= 4,它爲'循環'節省了時間。我認爲將MDP提高到40將加快這一進程。但花了900分鐘纔得到預期的結果。
二手
var list=List<Thread()>; foreach (var record in records) { var thread = new Thread (=> GeneratePDF()); thread.Start(); list.Add(thread); } foreach(var listThreads in thread){ listThreads. Join();
}
我使用的代碼以上那樣。但它最終創造了太多的線程,花了更長的時間。
我需要使用Parallel的幫助。 Foreach加速爲90K記錄創建PDF的過程。改變代碼的建議也是可以接受的。 任何幫助將不勝感激。
感謝
運行更多的線程通常比運行內核時多。上下文切換最終會讓它變慢。 –
@Matti感謝您的回覆。我需要改變以加速這個過程? – user3715379
你需要一臺功能強大的機器來加快速度。 –