[英]C# LINQ Performance, How can I avoid It?
我有scheduler.PageResults
這段代碼,其中包含數百萬行。
var AllNonHTMLPages = scheduler.PageResults
.Where(p => (p.SkipReason & SkipReasonEnum.NoHTML) == SkipReasonEnum.NoHTML);
Console.WriteLine("# All Non HTML Pages: {0}", AllNonHTMLPages.Count());
foreach (PageData page in AllNonHTMLPages) { Console.WriteLine("Non HTML Page: {0}", page.Url); }
foreach (PageData page in scheduler.PageResults
.Where(p => p.SkipReason.IsFlagSet(SkipReasonEnum.None))
.OrderByDescending(p => p.IndexPath.Length))
{
.....
}
羅斯林貢獻代碼表明
我知道LINQ很慢。 不使用Linq API進行優化的一些想法?
我發現,當使用Linq並遍歷大對象集(> 5000)時,當行中有很多數據/列時,速度很慢。 因此,如果您有權訪問數據庫並可以在該數據庫中進行操作,則性能將提高幾個數量級。 我也從來沒有實現過它(寫過TSQL),但是,您可以購買/獲取包以在對象的內存索引中構建內容以加快處理速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.