پس از وقفهای تقریباً چهار ساله (به " مراجعه کنید)همه چیز جمالوک») انتشار نسخه ۵.۳.۱ از تخصیصدهنده انجام شد جمالوک - پیادهسازی malloc(3) که بر جلوگیری از قطعه قطعه شدن و پشتیبانی از همزمانی مقیاسپذیر تأکید دارد.
این نسخه جدید شامل بیش از ۳۹۰ کامیت (تغییر) به همراه رفع اشکالات، ویژگیهای جدید، بهینهسازی عملکرد و بهبود قابلیت حمل است.
این پروژه به زبان 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 اضافه شد تا مشخص شود که آیا هنگام فراخوانی calloc، از هسته یا memset برای صفر کردن بلوکهای حافظه اختصاص داده شده استفاده میشود یا خیر.
- گزینه --disable-user-config compile-time برای غیرفعال کردن خواندن پیکربندیها از فایل /etc/malloc.conf یا از متغیر محیطی MALLOC_CONF در زمان اجرا اضافه شد.
- پارامتر زمان اجرا disable_large_size_classes اضافه شد تا الگوریتم محاسبه اندازه جدید موجود را فعال کند، که سربار حافظه را هنگام تخصیص بلوکهای حافظه بزرگ، یعنی با اندازه >= 4 * PAGE، به حداقل میرساند.
- استفاده از process_madvise فعال شد و پارامتر زمان اجرا process_madvise_max_batch برای کنترل حداکثر تعداد نواحی حافظه در هر "دسته" madvise اضافه شد؛
- رابطهای mallctl اضافه شدند:
- opt.prof_bt_max;
- thread.tcache.max برای تغییر و دریافت tcache_max نخ فعلی؛
- thread.tcache.ncached_max.write و thread.tcache.ncached_max.read_sizeclass برای تغییر و دریافت ncached_max نخ فعلی؛
- arenas.hugepage برای برگرداندن اندازه hugepage استفاده شده، که به malloc stats نیز صادر میشود؛
- تابع approximate_stats.active برای دریافت مقدار تقریبی تعداد بایتهای فعال فعلی، که نباید با سایر آمارهای بازیابی شده مقایسه شود.
- بسیاری از اشکالات نیز برطرف شده و مستندات بهبود یافته است.
منبع: linux.org.ru
