Efter næsten fire års pause (se "jemalloc alt") blev version 5.3.1 af allocatoren jemalloc – implementeringen af malloc(3), hvor der er lagt særlig vægt på at forhindre fragmentering og understøtte skalerbar parallelisme.
Den nye version inkluderer over 390 commits med fejlrettelser, nye funktioner, ydeevneoptimering og forbedret portabilitet.
Projektet er skrevet i C og distribueres under BSD-licensen.
Nye funktioner:
- understøttelse af pvalloc(3).
- opdagelse af dobbelt frigivelse af hukommelse i debug-build;
- tilføjet kompilationsmuligheden —enable-pageid for at aktivere annotation af den viste hukommelse.
- tilføjet runtime-parameteren prof_bt_max til styring af den maksimale dybde af stakken til profilering;
- tilføjet kompilationsmuligheden —enable-force-getenv for at bruge getenv i stedet for secure_getenv;
- tilføjet kompilationsmuligheden —disable-dss for at deaktivere brug af sbrk(2);
- tilføjet kompilationsmuligheden tcache_ncached_max til at styre antallet af elementer i trådcache.
- tilføjet runtime-parameteren calloc_madvise_threshold til at bestemme, om kernen eller memset bruges til at nulstille tildelte hukommelsesblokke ved anrop af calloc;
- tilføjet kompilationsmuligheden —disable-user-config for at deaktivere indlæsning af konfigurationer fra filen /etc/malloc.conf eller fra miljøvariablen MALLOC_CONF ved kørsel;
- tilføjet runtime-parameteren disable_large_size_classes for at sikre, at den nye algoritme til beregning af tilgængelig størrelse fungerer, hvilket minimerer overhead af hukommelse ved tildeling af store hukommelsesblokke, dvs. med størrelse >= 4 * PAGE;
- tilføjet brug af process_madvise og tilføjet runtime-parameteren process_madvise_max_batch til at styre det maksimale antal hukommelsesregioner i hver "pakke" madvise;
- tilføjet interfaces mallctl:
- opt.prof_bt_max;
- arena.<i>.name for at ændre og få navne på "arenas";
- thread.tcache.max for at ændre og få tcache_max for den aktuelle tråd;
- thread.tcache.ncached_max.write og thread.tcache.ncached_max.read_sizeclass for at ændre og få ncached_max for den aktuelle tråd;
- arenas.hugepage for at returnere den bruges størrelse af hugepage, og også eksportere det til malloc-statistikken;
- approximate_stats.active for at få et omtrentligt værdi af det nuværende volumen af aktive bytes, som ikke bør sammenlignes med andre hentede statistikker.
- mange fejl er også blevet rettet, og dokumentationen er blevet forbedret.
Kilde: linux.org.ru
