عنوان:

‫بهینه‌سازی Contains در LINQ در دات‌نت 10


نویسنده: وحید نصیری
تاریخ: ۱۴۰۳/۱۲/۰۳ ۰۸:۰۶
آدرس: www.dntips.ir
این درخواست Pull، توسط stephentoub، متد Contains در LINQ را برای تکرارکننده‌ها در زمان اجرای دات‌نت بهینه می‌کند. این مورد به استفاده‌ی رایج از Contains پس از یک زنجیره از عملیات LINQ می‌پردازد.
  • انگیزه: Contains اغلب پس از عملیات LINQ، به طور مستقیم یا غیرمستقیم به دلیل استفاده داخلی LINQ در متدهایی که شمارنده برمی‌گردانند، استفاده می‌شود. این PR هدف بهبود عملکرد این سناریوها را دارد.
  • استراتژی‌های بهینه‌سازی:
    • حذف عملگرها: برخی از عملگرها (به عنوان مثال، Shuffle، OrderBy) بر توالی زیربنایی برای Contains تأثیری ندارند و امکان دسترسی مستقیم به منبع را فراهم می‌کنند.
    • پردازش مستقیم منبع: برای عملگرهایی مانند Concat، Contains می‌تواند به هر منبع به صورت جداگانه‌ای اعمال شود و به‌طور بالقوه از پیاده‌سازی‌های برداری بهره ببرد.
    • استفاده از پیاده‌سازی‌های موجود: از پیاده‌سازی‌های Contains موجود از عملگرهایی که IList را پیاده‌سازی می‌کنند، استفاده می‌کند.
    • Overridهای جدید Contains : Overridهای جدید یک متد مجازی Contains را در کلاس Iterator معرفی می‌کند.


مشاهده مطلب اصلی