ما هو "TCMalloc حاليا لا يرجع أي ذاكرة إلى النظام." يعني؟

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

  •  12-11-2019
  •  | 
  •  

سؤال

في

في http://goog-perftools.sourceforge.net/doc/tcmalloc.HTML وذكر: "cmalloc حاليا لا يرجع أي ذاكرة إلى النظام." أفترض أنه يعني أنه إذا قمت بتخصيص 42 ميغابايت ونظام تكنولوجيا المعلومات مجانا لن يحصل عليه، ولكن في المرة القادمة أخصص 47 ميغابايت سأسرق فقط 5 ميغابايت أكثر؟سؤالي ماذا يحدث مع DLL محملة وحدات .so.هل يحصلون على قطعة من الذاكرة الخاصة بهم لا يتم إصدارها حتى تخطئ البرنامج.أسأل لأنه إذا كنت ترغب في كتابة وقت التشغيل القابل للتحديث SW، يجب عليك تحميل DLLs الجديدة دون الخروج من البرنامج.لذا فإن سؤالي هو: إذا كنت أستخدم -ltcmalloc وأنا جرس باستمرار وتفريغ DLLs التي تخصص الذاكرة الحرة التي تسبب استخدام MEM للاستخدام؟أفترض أنه سؤال غبي، لكنني لا أعرف ما إذا كان كل DLL يستخدم أشياء تخصيص الذاكرة الخاصة به أو إذا كان تخصيص MEM في مستوى العمليات.

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

المحلول

الذاكرة تنتمي إلى عملية، وليس DLLs.حتى يتم الاحتفاظ بالذاكرة عادة حتى تنتهي العملية.هذه ميزة شائعة لمعظم تطبيقات malloc، وليس فقط الشخص الذي تسأل عنه.

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