Efter ett uppehĂ„ll pĂ„ nĂ€stan fyra Ă„r (se "jemalloc allt») utgivningen av 5.3.1 av allokeraren Ă€gde rum jemalloc â en implementering av malloc(3) som betonar fragmenteringsförebyggande Ă„tgĂ€rder och stöd för skalbar samtidighet.
Den nya utgÄvan innehÄller över 390 commits med buggfixar, nya funktioner, prestandaoptimeringar och förbÀttringar av portabilitet.
Projektet Àr skrivet i C och distribueras under BSD-licensen.
Nya möjligheter:
- pvalloc(3)-stöd.
- dubbel frigöring upptÀckt i felsökningsbygge;
- Lade till kompileringsalternativet --enable-pageid för att aktivera minnesmappade annoteringar.
- Lade till runtime-parametern prof_bt_max för att styra maximalt stackdjup för profilering;
- Lade till kompileringsalternativet --enable-force-getenv för att anvÀnda getenv istÀllet för secure_getenv;
- Lade till kompileringsalternativet --disable-dss för att inaktivera anvÀndningen av sbrk(2);
- Lade till kompileringsalternativet tcache_ncached_max för att kontrollera antalet objekt i trÄdcachen.
- Lade till runtime-parametern calloc_madvise_threshold för att avgöra om kÀrnan eller memset anvÀnds för att nollstÀlla allokerade minnesblock vid anrop av calloc;
- Lade till alternativet --disable-user-config vid kompilering för att inaktivera lÀsning av konfigurationer frÄn filen /etc/malloc.conf eller frÄn miljövariabeln MALLOC_CONF vid körning.
- Lade till runtime-parametern disable_large_size_classes för att aktivera den nya algoritmen för berÀkning av tillgÀnglig storlek, vilket minimerar minnesöverhead vid allokering av stora minnesblock, dvs. med en storlek >= 4 * PAGE;
- Aktiverade anvÀndningen av process_madvise och lade till runtime-parametern process_madvise_max_batch för att styra det maximala antalet minnesregioner i varje madvise-"batch";
- mallctl-grÀnssnitt tillagda:
- opt.prof_bt_max;
- arena.
- thread.tcache.max för att Àndra och hÀmta tcache_max för den aktuella trÄden;
- thread.tcache.ncached_max.write och thread.tcache.ncached_max.read_sizeclass för att Àndra och hÀmta ncached_max för den aktuella trÄden;
- arenas.hugepage för att returnera den anvÀnda hugepage-storleken, Àven exporterad till malloc-statistik;
- approximate_stats.active för att fÄ ett ungefÀrligt vÀrde pÄ den aktuella mÀngden aktiva byte, vilket inte bör jÀmföras med annan hÀmtad statistik.
- MÄnga buggar har ocksÄ ÄtgÀrdats och dokumentationen har förbÀttrats.
KĂ€lla: linux.org.ru
