Təxminən dörd illik fasilədən sonra (bax: "jemalloc hər şey») ayırıcının 5.3.1 versiyasının buraxılışı baş verdi jemalloc – malloc(3)-ün parçalanmanın qarşısını almağa və miqyaslana bilən paralelliyi dəstəkləməyə vurğu edən tətbiqi.
Yeni buraxılışa səhv düzəlişləri, yeni funksiyalar, performans optimallaşdırmaları və daşınabilirlik təkmilləşdirmələri ilə birlikdə 390-dan çox commit daxildir.
Layihə C dilində yazılıb və BSD lisenziyası altında paylanır.
Yeni funksiyalar:
- pvalloc(3) dəstəyi.
- debug quruluşunda ikiqat pulsuz aşkarlandı;
- Yaddaşla xəritələşdirilmiş annotasiyanı aktivləşdirmək üçün --enable-pageid kompilyasiya seçimi əlavə edildi.
- Profilləmə üçün maksimum yığın dərinliyini idarə etmək üçün prof_bt_max işləmə müddəti parametri əlavə edildi;
- secure_getenv əvəzinə getenv istifadə etmək üçün --enable-force-getenv kompilyasiya seçimi əlavə edildi;
- sbrk(2) funksiyasının istifadəsini deaktiv etmək üçün --disable-dss kompilyasiya seçimi əlavə edildi;
- Mövzu keşindəki elementlərin sayını idarə etmək üçün tcache_ncached_max kompilyasiya seçimi əlavə edildi.
- calloc çağırılarkən ayrılmış yaddaş bloklarını sıfırlamaq üçün nüvənin və ya memsetin istifadə olunub-olunmadığını müəyyən etmək üçün calloc_madvise_threshold icra vaxtı parametri əlavə edildi;
- /etc/malloc.conf faylından və ya MALLOC_CONF mühit dəyişənindən iş vaxtında konfiqurasiyaların oxunmasını deaktiv etmək üçün --disable-user-config compile-time seçimi əlavə edildi.
- Böyük yaddaş blokları ayırarkən, yəni ölçüsü >= 4 * PAGE olduqda yaddaş yükünü minimuma endirən yeni mövcud ölçü hesablama alqoritmini aktivləşdirmək üçün iş vaxtı parametri disable_large_size_classes əlavə edildi;
- process_madvise istifadəsini aktivləşdirdi və hər bir madvise "batch"-da maksimum yaddaş bölgələrini idarə etmək üçün process_madvise_max_batch icra vaxtı parametrini əlavə etdi;
- mallctl interfeysləri əlavə edildi:
- opt.prof_bt_max;
- arena.
- thread.tcache.max funksiyasını dəyişdirərək cari mövzunun tcache_max dəyərini əldə etmək üçün istifadə edin;
- thread.tcache.ncached_max.write və thread.tcache.ncached_max.read_sizeclass əmrlərini dəyişdirərək cari mövzunun ncached_max dəyərini əldə edin;
- arenas.hugepage istifadə olunmuş hugepage ölçüsünü qaytarır, həmçinin malloc statistikasına ixrac olunur;
- approximate_stats.active funksiyasından istifadə edərək, cari aktiv baytların təxmini dəyərini əldə edə bilərsiniz və bu dəyər digər əldə edilmiş statistikalarla müqayisə edilməməlidir.
- Bir çox səhvlər də düzəldilib və sənədlər təkmilləşdirilib.
Mənbə: linux.org.ru
