Nakon gotovo četiri godine pauze (vidi „jemalloc sve”) objavljeno je 5.3.1 allocatora jemalloc – implementacija malloc(3), koja se posebno fokusira na sprječavanje fragmentacije i podršku za skalabilnu paralelnost.
Nova verzija uključuje više od 390 commit-a sa ispravcima grešaka, novim funkcijama, optimizacijom performansi i poboljšanjem prenosivosti.
Projekt je napisan na jeziku C i distribuira se pod BSD licencom.
Nove mogućnosti:
- podrška za pvalloc(3).
- otkrivanje dvojne oslobođenja memorije u debug izdanju;
- dodana opcija kompilacije —enable-pageid za uključivanje anotacije prikazane memorije.
- dodana runtime opcija prof_bt_max za upravljanje maksimalnom dubinom stoga za profiliranje;
- dodana opcija kompilacije —enable-force-getenv za korištenje getenv umjesto secure_getenv;
- dodana opcija kompilacije —disable-dss za onemogućavanje korištenja sbrk(2);
- dodana opcija kompilacije tcache_ncached_max za upravljanje brojem elemenata u thread cache-u.
- dodana runtime opcija calloc_madvise_threshold za određivanje koristimo li kernel ili memset za nulairanje dodijeljenih blokova memorije prilikom poziva calloc;
- dodana opcija kompilacije —disable-user-config za onemogućavanje čitanja tijekom rada konfiguracija iz datoteke /etc/malloc.conf ili iz varijable okruženja MALLOC_CONF;
- dodana runtime opcija disable_large_size_classes za osiguranje rada novog algoritma za izračun dostupne veličine, koji minimizira troškove memorije prilikom dodjele velikih blokova memorije, tj. s veličinom >= 4 * PAGE;
- omogućena je upotreba process_madvise i dodana runtime opcija process_madvise_max_batch za upravljanje maksimalnim brojem regija memorije u svakoj 'tasci' madvise;
- dodani su mallctl interfejsi:
- opt.prof_bt_max;
- arena..name za promjenu i dobivanje imena 'arena';
- thread.tcache.max za promjenu i dobivanje tcache_max trenutne niti;
- thread.tcache.ncached_max.write i thread.tcache.ncached_max.read_sizeclass za promjenu i dobivanje ncached_max trenutne niti;
- arenas.hugepage za vraćanje korištene veličine hugepage, takođe izvezene u statistiku malloc;
- approximate_stats.active za dobivanje približne vrijednosti trenutnog volumena aktivnih bajtova, koju ne treba uspoređivati s drugim dobivenim statističkim podacima.
- takođe su ispravljene mnoge greške i poboljšana dokumentacija.
Izvor: linux.org.ru
