مدير الذاكرة وذاكرة التخزين المؤقت للنظام في Windows: الترحيل ودمج الصفحات والكتابة المؤجلة
على هذه الصفحة
إجابة مختصرة
Section titled “إجابة مختصرة”في هذه السلسلة تم فحص سبعة معاملات للترحيل، ودمج الصفحات المتطابقة، وكومة النواة، وذاكرة التخزين المؤقت للملفات. في Windows 11 25H2 تم العثور على كود قراءة كل واحد منها. تعتمد الفائدة العملية على المعامل وظروف التشغيل.
DisablePageCombining يعطّل دمج الصفحات في الخلفية: يتوقف مدير الذاكرة عن أداء هذا العمل، لكن استهلاك RAM قد يزداد. DisablePagingExecutive يُبقي كود برامج التشغيل القابل للترحيل في الذاكرة الفعلية؛ الفائدة عادةً ضئيلة. أما المعاملات المتبقية فتنطبق فقط على مهام محددة للنواة أو وحدات التخزين، أو أنها تمتلك بالفعل قيمًا افتراضية مناسبة في 25H2.
ما الذي تم فحصه
Section titled “ما الذي تم فحصه”لكل قيمة تم فحص:
- المسار الدقيق في Registry والنوع؛
- القيمة الافتراضية المحددة بواسطة كود Windows 11 25H2؛
- القيم المرتبطة في النظام الفرعي نفسه؛
- كود القراءة في النظام ولحظة تنفيذه؛
- حدود النطاق، وتحويل القيم، ووحدات القياس؛
- التأثير المباشر وحدود قابلية التطبيق.
إلى جانب كود القراءة، فحصنا أين يُطبَّق المعامل، وما العواقب المترتبة على تغييره، وفي أي سيناريوهات قد يكون مفيدًا. مجرد وجود المعامل لا يكفي للتوصية به.
نطاق البحث والأدلة
Section titled “نطاق البحث والأدلة”- Windows 11 25H2 x64، build
26200.9168. - تمت مقابلة معاملات النواة مع جدول التكوين الرئيسي
ntoskrnl.exeوكود تطبيقها في Memory Manager وCache Manager. - تم فحص الوصول أثناء التشغيل عبر تتبع Registry على مستوى النظام. قد تكون القراءات في المرحلة 0 وبداية المرحلة 1 غائبة في تتبع الإقلاع العادي: يبدأ برنامج التتبع الكتابة لاحقًا.
- بالنسبة لعمليات المستخدم، تم فحص قراءة القيمة بشكل منفصل في
ntdll.dll. بالنسبة لـHeapDeCommitFreeBlockThresholdفي 25H2 تم العثور على قراءة في النواة، لكن كومة عمليات المستخدم لا تستخدم هذا المعامل. - لا يُغني التحليل الساكن لمكونات النظام عن التكرار على جهاز فعلي، أو build آخر، أو نوع آخر من وحدات التخزين.
المعاملات الأساسية
Section titled “المعاملات الأساسية”| Registry path | Value | Type | Default Windows 11 25H2 | التطبيق |
|---|---|---|---|---|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management |
DisablePagingExecutive |
REG_DWORD |
0 |
ترحيل الكود القابل للترحيل لبرامج تشغيل النظام |
| المسار نفسه | DisablePageCombining |
REG_DWORD |
0 |
دمج الصفحات الفعلية المتطابقة في الخلفية |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager |
HeapDeCommitFreeBlockThreshold |
REG_DWORD |
0x1000 (4 KB) لـ kernel heap |
عتبة decommit للكتل الحرة في kernel-mode heap |
| المسار نفسه | ModifiedWriteMaximum |
REG_DWORD |
1 الوحدة = 1 MB |
الحد الأعلى لـ modified page writer بعد clamp |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management |
EnableAsyncLazywrite |
REG_DWORD |
2 |
الوضع غير المتزامن لـ Cache Manager |
| المسار نفسه | CacheUnmapBehindLengthInMB |
REG_DWORD |
8 MB |
نافذة unmap خلف القراءة التسلسلية |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
SplitLargeCaches |
REG_DWORD |
0 |
تمثيل cache topology بين processor groups |
DisablePagingExecutive
Section titled “DisablePagingExecutive”ما الذي يفعله
Section titled “ما الذي يفعله”عند 0 يمكن لمدير الذاكرة في Windows ترحيل الأقسام المسموح بها من كود النظام وبرامج التشغيل إلى وحدة التخزين الاحتياطية. عند 1 يُحتفظ بالكود القابل للترحيل لبرامج تشغيل النظام في الذاكرة الفعلية.
تم العثور على كود القراءة في ntoskrnl.exe في مرحلة مبكرة من تهيئة النواة. تُستخدم القيمة في MmResetDriverPaging، وMmPageEntireDriver، وعند تحميل صور النظام. وهي تُطبَّق قبل أن يبدأ تتبع Registry العادي للمستخدم. لتطبيق الحالة الجديدة يلزم إعادة التشغيل.
القيم والقيود
Section titled “القيم والقيود”0: الحالة القياسية لـ Windows، الترحيل مسموح.1: تُحتفظ الأقسام القابلة للترحيل لبرامج تشغيل النظام في RAM.- يستهلك الإعداد RAM لتقليل عمليات التحميل اللاحقة لكود النظام مرة أخرى إلى الذاكرة؛ القرص نفسه لا يصبح أسرع.
الفائدة
Section titled “الفائدة”يمنع الإعداد الترحيل والتحميل اللاحقين لهذه الأقسام من برامج التشغيل. وهو لا يعطّل خيط CPU منفصلًا للفحص المستمر. على نظام حديث بذاكرة RAM كافية، تكون الفائدة عادةً ضئيلة جدًا: فالكود قد يبقى في الذاكرة طويلًا حتى بدون الإعداد. وعند نقص RAM، يؤدي الإبقاء القسري عليه إلى تفاقم نقص الذاكرة.
تم تأكيد قراءة المعامل واتجاه التأثير النظامي بواسطة كود ntoskrnl.exe.
DisablePageCombining
Section titled “DisablePageCombining”ما الذي يفعله
Section titled “ما الذي يفعله”عند 0 يبدأ مدير الذاكرة مهمة في الخلفية تبحث عن الصفحات الفعلية المتطابقة وتدمجها. عند 1 لا تنفذ هذه المهمة الدمج.
في ntoskrnl.exe تم العثور على كود دمج الصفحات في الخلفية بوسم pool MmCb، ما يؤكد وجود الآلية.
القيم والقيود
Section titled “القيم والقيود”0: دمج الصفحات مسموح، الحالة القياسية لـ Windows.1: الدمج معطّل.- تقليل الدمج يقلل العمل في الخلفية لمدير الذاكرة، لكنه قد يزيد استهلاك RAM.
الفائدة
Section titled “الفائدة”يكون التعطيل مفيدًا إذا كان دمج الصفحات يخلق حملًا ملحوظًا في الخلفية ولدى النظام RAM حرة. عادةً تكون هذه المهمة قليلة النشاط، لذا فالتأثير ضئيل جدًا. وعند حجم ذاكرة محدود، يكون توفير RAM من الدمج أكثر فائدة من وقت المعالج الموفَّر.
تم تأكيد كود القراءة والمهمة في الخلفية في ntoskrnl.exe. وتصف Microsoft دمج الصفحات والمقايضة بين عمل المعالج وتوفير RAM.
HeapDeCommitFreeBlockThreshold
Section titled “HeapDeCommitFreeBlockThreshold”ما الذي يفعله
Section titled “ما الذي يفعله”تحدد القيمة عتبة تحرير الذاكرة المخصصة (decommit) للكتلة الحرة في كومة النواة. عند عتبة أكبر، تحدث هذه العمليات للكتل الحرة الكبيرة بشكل أقل تكرارًا.
في Windows 11 25H2 يوجد كود القراءة في ntoskrnl.exe، ويرتبط تطبيق المعامل بدالة النواة RtlCreateHeap. وفي ntdll.dll لم يتم العثور على كود قراءة مقابل لكومات العمليات العادية.
القيم والقيود
Section titled “القيم والقيود”- القيمة الافتراضية في الكود لكومة النواة:
0x1000(4 KB). 0x40000(256 KB) هي عتبة صالحة لكومة النواة.- وصفت وثائق Microsoft التاريخية سيناريو user-mode بالاسم نفسه لإصدارات Windows القديمة، لذا لا يمكن نقله تلقائيًا إلى Windows 11 25H2.
الفائدة
Section titled “الفائدة”بالنسبة للتطبيقات العادية لا توجد فائدة عمليًا: فكوماتها لا تستخدم هذه القيمة. قد يغيّر المعامل تكرار تحرير الذاكرة فقط في كومة النواة. وبدون مشكلة مقيسة تحديدًا معها، يكون التأثير المتوقع ضئيلًا جدًا.
تم تأكيد القراءة في وضع النواة في ntoskrnl.exe. ولم يتم تأكيد التأثير على عمليات المستخدم في 25H2.
ModifiedWriteMaximum
Section titled “ModifiedWriteMaximum”ما الذي يفعله
Section titled “ما الذي يفعله”يحدد المعامل الحد الأعلى لآلية كتابة الصفحات المعدّلة (modified page writer). يُستخدم في الكود وحدات من 256 صفحة، أي أن الوحدة الواحدة تساوي 1 MB.
التطبيع في Windows 11 25H2:
0يُحوَّل إلى1وحدة، أي 1 MB؛- القيم الأكبر من
0x40تُقيَّد بـ0x40؛ - الحد الفعلي الأقصى يساوي 64 MB، أو 16 384 صفحة.
تبدأ الآلية الكتابة النشطة عند بلوغ نحو ربع الحد المحدد. يغيّر زيادة الحد لحظة بدء الكتابة وحجم الصفحات المعدّلة المتراكمة. ولا تزداد سرعة القرص نفسه من ذلك.
الفائدة
Section titled “الفائدة”عند حد أكبر تتراكم صفحات معدّلة أكثر قبل بدء الكتابة النشطة. قد تبدأ الكتابة بشكل أقل تكرارًا، لكن حجم البيانات غير المحفوظة بعد وحجم الدفعة التالية من الكتابة يزدادان. إذا لم تكن هناك مشكلة محددة مع الكتابة، فاترك القيمة الافتراضية. الحد الفعلي مقيّد بـ 64 MB.
تم تأكيد كود القراءة ووحدات القياس وتقييد النطاق في ntoskrnl.exe. المعامل الذي يحمل الاسم نفسه من وثائق Microsoft القديمة حول BitLocker يخص نظامًا فرعيًا آخر؛ ولا تُستخدم هذه الوثائق هنا كمصدر.
EnableAsyncLazywrite والقيم المرتبطة
Section titled “EnableAsyncLazywrite والقيم المرتبطة”ما الذي يفعله
Section titled “ما الذي يفعله”EnableAsyncLazywrite يتحكم في الكتابة المؤجلة غير المتزامنة لـ Cache Manager. في كود 25H2 تم تعيين القيمة الافتراضية 2: هذا الوضع مُفعَّل بالفعل.
القيم المرتبطة في النظام الفرعي نفسه:
| Value | Default 25H2 | الدور |
|---|---|---|
EnableAsyncLazywrite |
2 |
وضع async lazy-write العام |
EnableAsyncLazywriteMulti |
2 |
وضع multi-volume المجاور |
EnablePerVolumeLazyWriter |
2 |
Per-volume lazy writer |
0 يعطّل الكتابة المؤجلة غير المتزامنة. بالنسبة لـ 1 يلزم وضع معالج كتابة مؤجلة منفصل على كل وحدة تخزين. 2 يفعّل الوضع غير المتزامن دون هذا الشرط. يعيد Cache Manager قراءة القيم عند التعامل مع تكوين وحدات التخزين.
الفائدة
Section titled “الفائدة”الكتابة الصريحة لـ 2 تكرر التكوين القياسي لـ Windows 11 25H2 ولا تحسّن أي شيء إضافي. الإعداد مناسب прежде всего للتشخيص: القيمة 0 تتيح تعطيل الآلية العاملة افتراضيًا.
لوحظت القراءة في تتبع النظام وتم تأكيدها في ntoskrnl.exe. القيمة الافتراضية 2 مؤكدة بالكود وبوصف مستقل لمعاملات Registry أُعدّ بناءً على نتائج الهندسة العكسية.
CacheUnmapBehindLengthInMB
Section titled “CacheUnmapBehindLengthInMB”ما الذي يفعله
Section titled “ما الذي يفعله”يحدد المعامل المسافة بالميغابايت، التي بعدها يحرر Cache Manager العروض المخزنة مؤقتًا التي بقيت خلف الموضع الحالي للقراءة التسلسلية.
يوجد كود قراءة المعامل وتطبيقه في ntoskrnl.exe ويُستدعى عند عرض وقراءة ذاكرة التخزين المؤقت. يخص المعامل القراءة التسلسلية للملفات الكبيرة؛ وهو لا يعطّل ذاكرة التخزين المؤقت للملفات بالكامل.
القيم وclamp
Section titled “القيم وclamp”0أو قيمة أكبر من128يستبدلها الكود بـ8.- النطاق العامل:
1..128MB. - القيمة الافتراضية في الكود:
8MB. - وحدات Registry value هي MB بالتحديد، وليست بايتات.
الفائدة
Section titled “الفائدة”يكون للمعامل معنى فقط للمهام المتخصصة للقراءة التسلسلية للملفات الكبيرة. عند نافذة أكبر يبقى عرض ذاكرة التخزين المؤقت خلف الموضع الحالي مدة أطول، وعند نافذة أصغر يُحرَّر أبكر. للعمل العادي تناسب القيمة القياسية 8 MB؛ والفائدة من الضبط اليدوي عادةً ضئيلة.
تم تأكيد كود القراءة والتطبيق وتقييد النطاق في ntoskrnl.exe. ولم يتم العثور على وثائق Microsoft عامة حديثة لهذا المعامل الداخلي.
SplitLargeCaches
Section titled “SplitLargeCaches”ما الذي يفعله
Section titled “ما الذي يفعله”عند 0 يعيد API وصف cache topology سجلًا موحدًا للبنية المقابلة التي تشمل عدة processor groups. عند 1 تُفصل السجلات حسب processor groups.
يوجد كود القراءة في ntoskrnl.exe. يُستخدم المعامل عند معالجة العلاقة RelationCache في KeQueryLogicalProcessorRelationship.
لا يتغير سوى وصف topology الذي يعيده API النظام. ولا تُفصل كتل الذاكرة الفعلية المخصصة، ولا تنخفض بحد ذاتها احتمالية نقص كتلة متصلة.
القيم والقيود
Section titled “القيم والقيود”0: القيمة الافتراضية.1: فصل سجلات topology حسب processor groups.- التأثير العملي ممكن прежде всего على الأنظمة ذات عدة processor groups، عادةً عند أكثر من 64 معالجًا منطقيًا.
- على نظام عادي بمجموعة واحدة لا يوجد تأثير.
الفائدة
Section titled “الفائدة”يحتاج المعامل فقط البرامج التي تطلب cache topology على جهاز بعدة processor groups. وهو لا يغيّر عمل ذاكرة التخزين المؤقت ولا تخصيص الذاكرة. لجهاز مكتبي عادي لا توجد فائدة.
تم تأكيد كود القراءة والتطبيق في ntoskrnl.exe. وتمت مقابلة القيمة والغرض مع الوصف العام للهندسة العكسية KiSplitLargeCaches.
الفائدة العامة
Section titled “الفائدة العامة”| المعامل | التقييم العملي |
|---|---|
DisablePagingExecutive |
عادةً يعطي فائدة ضئيلة جدًا، بإبقاء مزيد من الكود في RAM |
DisablePageCombining |
مفيد عند حمل مؤكد لدمج الصفحات في الخلفية واحتياطي كبير من RAM |
HeapDeCommitFreeBlockThreshold |
يعمل في النواة فقط؛ للتطبيقات العادية لا توجد فائدة عملية |
ModifiedWriteMaximum |
يغيّر شروط كتابة الصفحات المعدّلة؛ بدون مشكلة مكتشفة اترك القيمة القياسية |
EnableAsyncLazywrite |
القيمة القياسية 2 تفعّل الآلية بالفعل؛ وإعادة الكتابة لا تحسّن شيئًا |
CacheUnmapBehindLengthInMB |
إعداد للقراءة التسلسلية؛ القيم القياسية 8 MB مناسبة للعمل العادي |
SplitLargeCaches |
يغيّر وصف topology لعدة processor groups؛ على نظام عادي لا يوجد تأثير |
ما الذي تم تأكيده وما لم يُقس
Section titled “ما الذي تم تأكيده وما لم يُقس”تم تأكيد المسارات والأنواع والقيم الافتراضية وكود القراءة ولحظة قراءة المعاملات المذكورة أعلاه، وكذلك قيود النطاقات. تتعلق النتائج بـ Windows 11 25H2 build 26200.9168. قد يختلف السلوك عند تحديث آخر لـ Windows، أو حجم RAM، أو نوع وحدة التخزين، أو topology CPU.
أما كيفية تكرار الجزء الديناميكي من الملاحظات — انظر كيف تتحقق بنفسك.
استعادة الحالة
Section titled “استعادة الحالة”لإرجاع الأمور، أعد القيم القياسية للمعاملات أو احذف السجلات الاختيارية. تُطبَّق بعض القيم عند الإقلاع التالي لـ Windows.
يعود البحث والأدوات المستخدمة فيه إلى مطوّر BoosterX، لذا فإن للمطوّر مصلحة مباشرة في النتائج. المنهجية وحدود قابلية التطبيق موصوفة في هذه المقالة؛ ويمكن التحقق من الاستنتاجات عبر البيانات المفتوحة والمصادر العامة المذكورة أدناه.
المصادر العامة
Section titled “المصادر العامة”- Memory combining، Microsoft Learn: الغرض من page combining والمقايضة بين CPU/RAM، تم التحقق في 2026-09-01.
- Registry key that controls device driver and system code pagination to disk، أرشيف Microsoft: دلالات
DisablePagingExecutive، تم التحقق في 2026-09-01. - HeapDeCommitFreeBlockThreshold, KB315407، وثائق Microsoft التاريخية: سيناريو user-mode القديم والعتبة 256 KB، تم التحقق في 2026-09-01.
- Windows system configuration descriptions، وصف RE عام لـ
SplitLargeCaches، تم التحقق في 2026-09-01.
تم التحقق من الادعاءات حول الكود عبر التحليل الساكن لمكونات نظام Windows 11 25H2. ولا يُنشر الكود المفكوك، ولا الإزاحات، ولا التتبعات الأصلية، ولا المواد الداخلية.
تم التحقق من المصادر العامة: 2026-09-02.
سجل التغييرات
Section titled “سجل التغييرات”- 2026-09-20: أُضيف إخلاء المسؤولية حول تضارب المصالح ورابط للتحقق الذاتي من الملاحظات الديناميكية في المنهجية.
- 2026-09-02: النشر الأول؛ تم تأكيد المسارات، وdefaults، وclamps، وكود قراءة المعاملات، وأُضيفت حدود الفائدة العملية.
