هل يعقل أن ذاكرة التخزين المؤقت البيانات التي تم الحصول عليها من الذاكرة تعيين الملف ؟

StackOverflow https://stackoverflow.com/questions/2516443

  •  22-09-2019
  •  | 
  •  

سؤال

أو أنه سيكون أسرع إلى إعادة قراءة البيانات من تعيين الذاكرة مرة أخرى ، لأن نظام التشغيل قد تنفذ الخاصة ذاكرة التخزين المؤقت ؟

طبيعة البيانات ليست معروفة مسبقا ، فمن المفترض أن ملف يقرأ بشكل عشوائي.

هل كانت مفيدة؟

المحلول

أردت أن أذكر بعض الأشياء التي قرأتها في هذا الموضوع.الجواب لا, أنت لا ترغب في تخمين الثانية نظام التشغيل إدارة الذاكرة.

الأول يأتي من فكرة أن كنت تريد البرنامج الخاص بك (على سبيل المثالMongoDB, SQL Server) في محاولة للحد من الذاكرة الخاصة بك على أساس نسبة مئوية من ذاكرة الوصول العشوائي الحرة:

لا تحاول أن تخصيص الذاكرة حتى يكون هناك فقط% x مجانا

أحيانا العملاء سوف تسأل عن طريقة تصميم البرنامج بحيث أنها لا تزال تستهلك ذاكرة الوصول العشوائي حتى لا يوجد سوى% x مجانا.الفكرة هي أن البرنامج يجب استخدام ذاكرة الوصول العشوائي بقوة ، في حين لا يزال يترك ما يكفي من ذاكرة الوصول العشوائي المتاحة (x%) لاستخدام آخر.إلا إذا كنت تقوم بتصميم نظام حيث أنت فقط البرنامج يعمل على الكمبيوتر, هذا هو فكرة سيئة.

(قراءة المقال شرح لماذا انها سيئة بما في ذلك الصور)

ثم يأتي من بعض الملاحظات من صاحب الصبغ ، وعكس الوكيل:

الورنيش ذاكرة التخزين المؤقت - الملاحظات من المهندس

ذلك ما يحدث مع الحبار وضع إدارة الذاكرة هو أن يحصل في معارك مع حبات وضع إدارة الذاكرة ، مثل أي الحرب الأهلية التي لم يحصل أي شيء.

هذا ما يحدث:الحبار يخلق HTTP الكائن في "رام" و يعتاد بعض مرات بسرعة بعد الخلق.ثم بعد بعض الوقت أنه لا يضرب و نواة يلاحظ هذا.ثم شخص يحاول الحصول على ذاكرة من نواة لشيء نواة تقرر أن تدفع تلك الصفحات غير المستخدمة من الذاكرة إلى مساحة المبادلة و استخدام (ذاكرة التخزين المؤقت ذاكرة الوصول العشوائي) أكثر معقولة للحصول على بعض البيانات التي هي في الواقع المستخدمة من قبل البرنامج.هذا ومع ذلك ، يتم دون الحبار معرفة حول هذا الموضوع.الحبار لا يزال يعتقد بأن http هذه الكائنات هي في ذاكرة الوصول العشوائي ، وأنها سوف تكون جدا الثانية فإنه يحاول الوصول إليها ، ولكن حتى ذلك الحين, RAM المستخدمة في شيء الإنتاجية.

تخيل أنك هل ذاكرة التخزين المؤقت شيء من الذاكرة المعنونة الملف.في بعض نقطة في المستقبل أن الذاكرة القابضة أن "ذاكرة التخزين المؤقت" سيتم تبديل الخروج إلى القرص.

  • نظام التشغيل قد كتب إلى القرص الصلب شيء موجود بالفعل على القرص الصلب

ثم يأتي وقت عندما كنت ترغب في إجراء بحث من "ذاكرة التخزين المؤقت" الذاكرة بدلا من "ريال مدريد" الذاكرة.محاولة الوصول إلى "ذاكرة التخزين المؤقت" ، حيث تم تبديل الخروج من ذاكرة الوصول العشوائي الأجهزة يثير PAGE FAULT, و ذاكرة التخزين المؤقت تبادلت مرة أخرى إلى ذاكرة الوصول العشوائي.

  • ذاكرة التخزين المؤقت الخاصة بك هو مجرد ذاكرة بطيئة مثل "الحقيقي" الذاكرة, لأن كلا لم تعد في ذاكرة الوصول العشوائي

أخيرا, كنت ترغب في تحرير ذاكرة التخزين المؤقت الخاصة بك (ربما البرنامج هو إيقاف).إذا كان "ذاكرة التخزين المؤقت" تم تبديل ، OS يجب أولا مبادلة في بحيث يمكن تحريرها.إذا بدلا من ذلك يمكنك فقط تفاصيلها الذاكرة الخاصة بك-في الملف المعين ، وذهب كل شيء (لا شيء يحتاج إلى تبديل في).

  • في هذه الحالة ذاكرة التخزين المؤقت الخاصة بك يجعل الأمور أبطأ

مرة أخرى من Raymon تشن:إذا كان التطبيق الخاص بك هو إغلاق قريبة بالفعل:

عندما DLL_PROCESS_DETACH تخبرك أن عملية الخروج ، وأفضل رهان هو فقط العودة دون أن تفعل أي شيء

أنا بانتظام استخدام البرامج التي لا تتبع هذه القاعدة.البرنامج ويخصص الكثير من الذاكرة أثناء الحياة ، وعندما الخروج من البرنامج, فقط يجلس هناك لعدة دقائق في بعض الأحيان الغزل 100 ٪ وحدة المعالجة المركزية ، وأحيانا متماوج القرص الصلب (في بعض الأحيان على حد سواء).عندما كسر مع المصحح أن نرى ما يحدث ، اكتشاف أن البرنامج لا تفعل أي شيء الإنتاجية.انها مجرد منهجية تحرير كل بايت من الذاكرة خصصت خلال عمر البطارية.

إذا كان جهاز الكمبيوتر لم يكن تحت الكثير من ضغط الذاكرة ، ثم أكثر من ذاكرة البرنامج قد خصصت خلال عمر لم يتم تقسيم حتى تحرير كل آخر قطرة من الذاكرة هو منضم CPU العملية.من ناحية أخرى, إذا كنت قد انطلقت بناء أو القيام به شيء آخر تستهلك ذاكرة, ثم أكثر من ذاكرة البرنامج قد خصصت خلال عمر مرحل ، مما يعني أن برنامج صفحات كل تلك الذاكرة من القرص الصلب فقط يمكن أن نسميه مجانا على ذلك.يبدو نوعا من الكيدية في الواقع."تعال هنا حتى أستطيع أن أقول لك أن تذهب بعيدا".

كل هذا الشرج-rententive إدارة الذاكرة لا طائل.عملية هو الخروج.كل تلك الذاكرة سوف يتم تحرير عند مساحة العنوان دمرت.التوقف عن إضاعة الوقت فقط الخروج بالفعل.


الواقع هو أن البرامج لم تعد تعمل في "ذاكرة الوصول العشوائي", تجري في الذاكرة - الظاهري الذاكرة.

لك يمكن من ذاكرة التخزين المؤقت ، ولكن عليك أن تعمل مع نظام التشغيل إدارة الذاكرة الظاهرية:

  • كنت تريد أن تبقي ذاكرة التخزين المؤقت الخاصة بك في عدد قليل من صفحات ممكن
  • كنت ترغب في التأكد من أنها تبقى في ذاكرة الوصول العشوائي ، بفضل من الوصول إلى الكثير (أييجري في الواقع مفيدة ذاكرة التخزين المؤقت)

الوصول إلى:

  • ألف 1 بايت مواقع حول 400 جيجابايت الملف

هو أغلى بكثير من الوصول إلى

  • واحد 1000 بايت في الملف 400 جيجابايت

وبعبارة أخرى:كنت لا حقا بحاجة إلى ذاكرة التخزين المؤقت البيانات, تحتاج أكثر محلية هيكل البيانات.

إذا كنت الحفاظ على البيانات الهامة الخاصة بك مقصورة 4k الصفحة سوف تلعب أجمل بكثير مع VMM;ويندوز هو ذاكرة التخزين المؤقت الخاصة بك.

عند إضافة 64-بايت رباعية كلمة الانحياز ذاكرة التخزين المؤقت-خطوط هناك أكثر من حافز لضبط هيكل بيانات تخطيط.ولكن إذا كنت لا تريد ذلك أيضا المدمجة ، أو عليك أن تبدأ معاناة عقوبات الأداء من ذاكرة التخزين المؤقت الهبات من كاذبة المشاركة.

نصائح أخرى

الجواب هو للغاية OS. بشكل عام ، لن يكون هناك أي معنى في تخزين المؤقت هذه البيانات. يمكن ترسيخ كل من البيانات "المخزنة مؤقتًا" وكذلك المُعين بالذاكرة في أي وقت.

إذا كان هناك أي اختلاف ، فسيكون ذلك خاصًا بنظام التشغيل - إلا إذا كنت بحاجة إلى التفاصيل ، فلا يوجد معنى في تخزين البيانات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top