Etter en pause på nesten fire år (se "jemalloc alt») utgivelsen av 5.3.1 av allokatoren fant sted jemalloc – en implementering av malloc(3) som vektlegger fragmenteringsforebygging og støtte for skalerbar samtidighet.
Den nye utgivelsen inkluderer over 390 commits med feilrettinger, nye funksjoner, ytelsesoptimaliseringer og forbedringer av portabilitet.
Prosjektet er skrevet i C og distribuert under BSD-lisensen.
Nye funksjoner:
- pvalloc(3)-støtte.
- double free oppdaget i feilsøkingsbygg;
- La til kompileringsalternativet --enable-pageid for å aktivere minnetilordnet annotering.
- La til kjøretidsparameter prof_bt_max for å kontrollere maksimal stakkdybde for profilering;
- La til kompileringsalternativet --enable-force-getenv for å bruke getenv i stedet for secure_getenv;
- La til kompileringsalternativet --disable-dss for å deaktivere bruk av sbrk(2);
- La til kompileringsalternativet tcache_ncached_max for å kontrollere antall elementer i trådbufferen.
- La til kjøretidsparameteren calloc_madvise_threshold for å avgjøre om kjernen eller memset brukes til å nullstille allokerte minneblokker når calloc kalles;
- La til kompileringstidsalternativet --disable-user-config for å deaktivere lesing av konfigurasjoner fra /etc/malloc.conf-filen eller fra miljøvariabelen MALLOC_CONF under kjøretid.
- La til kjøretidsparameteren disable_large_size_classes for å aktivere den nye algoritmen for beregning av tilgjengelig størrelse, som minimerer minneoverhead ved allokering av store minneblokker, dvs. med en størrelse >= 4 * PAGE;
- Aktiverte bruken av process_madvise og la til kjøretidsparameteren process_madvise_max_batch for å kontrollere maksimalt antall minneregioner i hver madvise-"batch";
- mallctl-grensesnitt lagt til:
- opt.prof_bt_max;
- arena.
- thread.tcache.max for å endre og hente tcache_max for den gjeldende tråden;
- thread.tcache.ncached_max.write og thread.tcache.ncached_max.read_sizeclass for å endre og hente ncached_max for den gjeldende tråden;
- arenas.hugepage for å returnere den brukte hugepage-størrelsen, også eksportert til malloc-statistikk;
- approximate_stats.active for å få en omtrentlig verdi av gjeldende antall aktive byte, som ikke skal sammenlignes med annen hentet statistikk.
- Mange feil er også rettet, og dokumentasjonen er forbedret.
Kilde: linux.org.ru
