PinnedMemory هو حل متعدد المنصات وعالي الأداء لإنشاء الذاكرة المثبتة والمقفلة والوصول إليها وإدارتها لأنظمة التشغيل Windows وmacOS وLinux في .NET Core. فهو يوفر تثبيتًا تلقائيًا للذاكرة وقفلًا اختياريًا للعمليات الحساسة، مما يساعدك على منع عمليات نقل مجموعة البيانات المهملة وتقديم أداء محسن في سيناريوهات معالجة الذاكرة ذات المستوى المنخفض.
من موجه الأوامر:
دوت نت إضافة حزمة PinnedMemory
تثبيت حزمة PinnedMemory
يمكنك أيضًا البحث عن الحزمة عبر واجهة مستخدم NuGet أو موقع الويب الخاص بك:
نوجيت: PinnedMemory
إدارة الذاكرة عبر الأنظمة الأساسية لأنظمة التشغيل Windows وLinux وmacOS.
يدعم عدة أنواع بدائية (على سبيل المثال، byte
، int
، float
، إلخ).
يوفر تصفير وقفل وفتح الذاكرة للأمان والأداء.
يمنع تجميع البيانات المهملة من نقل الذاكرة عن طريق تثبيت المصفوفة في الذاكرة.
استنساخ وتجميع فعال للمصفوفات باستخدام ArrayPool<T>
.
مُحسّن للأداء من خلال البطانة القوية والتخصيصات المنخفضة.
باستخدام (var pin = new PinnedMemory<byte>(new byte[3])){pin[0] = 65;pin[1] = 61;pin[2] = 77;}
باستخدام (var pin = new PinnedMemory<byte>(new byte[3])){pin.Write(0, 65);pin.Write(1, 61);pin.Write(2, 77);}
باستخدام (var pin = new PinnedMemory<byte>(new byte[] {65, 61, 77}, false)){var byte1 = pin[0];var byte2 = pin[1];var byte3 = pin[2] ;}
باستخدام (var pin = new PinnedMemory<byte>(new byte[] {65, 61, 77}, false)){var byte1 = pin.Read(0);var byte2 = pin.Read(1);var byte3 = دبوس.قراءة (2)؛}
باستخدام (var pin = new PinnedMemory<byte>(new byte[] {65, 61, 77}, false)){var clone = pin.Clone();var clonedArray = clone.ToArray();}
باستخدام (var pin = new PinnedMemory<byte>(new byte[3], Zero: true, lock: true)){// يتم صفر الذاكرة وقفلها تلقائيًا.// إجراء عمليات آمنة.}
يتم دعم الأنواع البدائية التالية في PinnedMemory
:
sbyte
byte
char
short
ushort
int
uint
long
ulong
float
double
decimal
bool
PinnedMemory (قيمة T []، المنطق المنطقي صفر = صحيح، المنطق المنطقي المقفل = صحيح، نوع SystemType = SystemType.Unknown)
القيمة : المصفوفة المراد تثبيتها في الذاكرة.
صفر : اختياري. إذا كان true
، فسيتم تصفية الذاكرة بعد التخصيص.
مغلق : اختياري. إذا كان true
، فسيتم قفل الذاكرة في ذاكرة الوصول العشوائي (RAM) لمنع الترحيل.
النوع : اختياري. يحدد النظام الأساسي لنظام التشغيل ( SystemType.Windows
، SystemType.Linux
، SystemType.Osx
). إذا كان Unknown
، فسيتم اكتشافه تلقائيًا.
T this[int i] : مفهرس للوصول إلى العناصر الموجودة في المصفوفة المثبتة.
int Length : يُرجع طول المصفوفة المثبتة.
T[] Read() : إرجاع المصفوفة المثبتة بالكامل.
T Read(int Index) : يقرأ القيمة في الفهرس المحدد.
كتابة باطلة (مؤشر int، قيمة T) : يكتب القيمة في الفهرس المحدد.
PinnedMemory Clone() : لاستنساخ مصفوفة الذاكرة المثبتة وإرجاع كائن PinnedMemory<T>
جديد.
T[] ToArray() : إرجاع نسخة من الذاكرة المثبتة كمصفوفة.
void Dispose() : يحرر الذاكرة المثبتة، ويصفّرها، ويفتحها إذا كانت مقفلة.
هذه المكتبة مرخصة بموجب ترخيص MIT.