jemalloc 5.3.1

بعد انقطاع دام قرابة أربع سنوات (انظر "كل شيء jemallocتم إصدار النسخة 5.3.1 من برنامج تخصيص الذاكرة. jemaloc – تطبيق لـ malloc(3) يركز على منع التجزئة ودعم التزامن القابل للتوسع.

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

المشروع مكتوب بلغة C ويتم توزيعه بموجب ترخيص BSD.

الميزات الجديدة:

  • دعم pvalloc(3).
  • تم اكتشاف تحرير مزدوج للملفات في إصدار التصحيح؛
  • تمت إضافة خيار التجميع --enable-pageid لتمكين التعليقات التوضيحية المرتبطة بالذاكرة.
  • تمت إضافة معلمة وقت التشغيل prof_bt_max للتحكم في أقصى عمق للمكدس لأغراض التنميط؛
  • تمت إضافة خيار التجميع --enable-force-getenv لاستخدام getenv بدلاً من secure_getenv؛
  • تمت إضافة خيار التجميع --disable-dss لتعطيل استخدام sbrk(2)؛
  • تمت إضافة خيار التجميع tcache_ncached_max للتحكم في عدد العناصر في ذاكرة التخزين المؤقت للخيوط.
  • تمت إضافة معلمة وقت التشغيل calloc_madvise_threshold لتحديد ما إذا كان يتم استخدام النواة أو memset لتصفير كتل الذاكرة المخصصة عند استدعاء calloc؛
  • تمت إضافة خيار --disable-user-config في وقت التجميع لتعطيل قراءة التكوينات من ملف /etc/malloc.conf أو من متغير البيئة MALLOC_CONF في وقت التشغيل.
  • تمت إضافة معلمة وقت التشغيل disable_large_size_classes لتمكين خوارزمية حساب الحجم المتاحة الجديدة، والتي تقلل من الحمل الزائد للذاكرة عند تخصيص كتل ذاكرة كبيرة، أي بحجم >= 4 * PAGE؛
  • تم تمكين استخدام process_madvise وإضافة معلمة وقت التشغيل process_madvise_max_batch للتحكم في الحد الأقصى لعدد مناطق الذاكرة في كل "دفعة" madvise؛
  • تمت إضافة واجهات mallctl:
    • opt.prof_bt_max;
    • arena.
    • لتغيير قيمة thread.tcache.max والحصول على قيمة tcache_max للخيط الحالي؛
    • thread.tcache.ncached_max.write و thread.tcache.ncached_max.read_sizeclass لتغيير والحصول على ncached_max للخيط الحالي؛
    • arenas.hugepage لإرجاع حجم الصفحة الضخمة المستخدمة، ويتم تصديرها أيضًا إلى إحصائيات malloc؛
    • approximate_stats.active للحصول على قيمة تقريبية للكمية الحالية من البايتات النشطة، والتي لا ينبغي مقارنتها بالإحصائيات الأخرى المسترجعة.
  • كما تم إصلاح العديد من الأخطاء وتحسين الوثائق.

المصدر: linux.org.ru