عن المشروع
ZLinq هي مكتبة LINQ عالية الأداء وبدون تخصيص ذاكرة لمنصات .NET (netstandard2.0، 2.1، net8، net9) ومحركات الألعاب مثل Unity وGodot. توفر `ValueEnumerable<T>` مبنية على البنية (struct) تقضي على التخصيصات في سلاسل الاستدعاءات، محققة أداءً أفضل من LINQ القياسي. تشمل الميزات الرئيسية:
- **توافق بنسبة 99%** مع LINQ في .NET 10، بما في ذلك المشغلات الجديدة مثل `Shuffle` و`RightJoin` و`LeftJoin` و`Sequence` و`InfiniteSequence`.
- **LINQ إلى Span**: دعم كامل لعمليات `Span<T>` باستخدام `allows ref struct` في .NET 9/C# 13.
- **LINQ إلى SIMD**: تسريع SIMD تلقائي للأنواع الرقمية المدعومة (مثل `int` و`float` و`double`) مع `SumUnchecked` لأقصى أداء.
- **LINQ إلى الشجرة**: دعم مدمج لهياكل الشجرة مثل نظام الملفات وJSON وGameObject، مما يتيح استعلامات LINQ على البيانات الهرمية.
- **بديل مباشر**: مولّد مصدر اختياري (`ZLinq.DropInGenerator`) لتسريع جميع طرق LINQ تلقائيًا دون تغيير الكود.
الاستخدام بسيط: أضف `AsValueEnumerable()` إلى المجموعات الموجودة لبدء تسلسل طرق ZLinq. تجتاز المكتبة أكثر من 9000 اختبار من System.Linq.Tests في dotnet/runtime، مما يضمن الموثوقية. تتضمن أيضًا أدوات مساعدة مثل `ToArrayPool` للتجسيد بدون تخصيص و`CopyTo` لتجنب تخصيصات المجموعات. بينما تُرجع سلاسل الطرق أنواعًا مختلفة (مما يمنع إعادة التعيين)، نادرًا ما يمثل هذا مشكلة في الممارسة العملية. ZLinq مثالية للتطبيقات الحساسة للأداء مثل الألعاب، حيث يكون LINQ بدون تخصيص أمرًا بالغ الأهمية.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.