سؤال

جاء Firefox 3 مع مُخصص جديد: jemalloc.

لقد سمعت في عدة أماكن أن هذا المخصص الجديد أفضل.لم تقدم أهم نتائج Google أي معلومات إضافية وأنا مهتم بمعرفة كيفية عملها بالضبط.

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

المحلول

وjemalloc ظهرت للمرة الأولى لفري، من بنات أفكار واحدة "جيسون إيفانز"، وبالتالي "جي". وأود أن السخرية منه لكونه مغرور كان لي ليس مرة واحدة مكتوبة نظام التشغيل دعا paxos: -)

هذا PDF للحصول على التفاصيل الكاملة. انها ورقة بيضاء تصف بالتفصيل كيفية عمل خوارزميات.

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

في حالات ترابط واحد، ليس هناك فائدة حقيقية للميادين متعددة بحيث يتم استخدام ساحة واحدة.

ولكن، في حالات متعددة الخيوط، يتم إنشاء العديد من المجالات (أربع مرات أكبر عدد ممكن من الساحات كما أن هناك معالجات)، ويتم تعيين المواضيع في هذه المجالات بطريقة ذهاب وإياب.

وهذا يعني أن الخلاف قفل يمكن تخفيض منذ ذلك الحين، في حين مواضيع متعددة يمكن أن نسميه malloc أو free في وقت واحد، وأنها سوف يتعامل إلا إذا كانت تشترك في نفس الساحة. واثنين من المواضيع مع مختلف الساحات لا تؤثر على بعضها البعض.

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

و، حيث لا يمكن أن يتحقق، فإنه يحاول التأكد من أن المخصصات متجاورة، حيث الذاكرة المخصصة معا يميل لاستخدامها معا.

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

نصائح أخرى

وهناك واحد يضيع المصدر: C-المصدر نفسه: http://mxr.mozilla.org/mozilla-central/source /memory/mozjemalloc/jemalloc.c

في البداية، يصف موجز قصير كيف يعمل تقريبا. على الرغم من إجراء تحليل أكثر عمقا خوارزمية مفقود.

أما بالنسبة للفوائد التي جلبها jemalloc إلى موزيلا، لكل http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/ (أيضًا نتيجة Google الأولى لـ mozilla+jemalloc):

[...] خلص إلى أن jemalloc أعطانا أصغر كمية من التجزئة بعد الركض لفترة طويلة من الزمن.[...] أظهرت اختباراتنا الآلية على نظام التشغيل Windows Vista انخفاض بنسبة 22% في استخدام الذاكرة عندما قمنا بتشغيل jemalloc.

وAerospike تنفيذ jemalloc مرة أخرى في فرع الخاص في عام 2013. وفي عام 2014، تم دمجه Aerospike 3.3. رطل Mankoski كتب فقط حول تنفيذ Aerospike، بالإضافة إلى متى وكيفية الاستخدام الفعال jemalloc، ل <لأ href = "http://highscalability.com/blog/2015/3/17/in-memory-computing-at-aerospike-scale ،، وعندما لاختيار و-ho.html "يختلط =" نوفولو "> ارتفاع قابلية .

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

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