Efter en pause på næsten fire år (se "jemalloc alt») frigivelsen af 5.3.1 af allokatoren fandt sted jemalloc – en implementering af malloc(3), der lægger vægt på fragmenteringsforebyggelse og understøttelse af skalerbar samtidighed.
Den nye udgivelse indeholder over 390 commits med fejlrettelser, nye funktioner, ydeevneoptimeringer og forbedringer af portabilitet.
Projektet er skrevet i C og distribueret under BSD-licensen.
Nye muligheder:
- pvalloc(3) understøttelse.
- dobbelt frigivelse detekteret i fejlfindingsbuild;
- Tilføjet kompileringsindstillingen --enable-pageid for at aktivere hukommelseskortlagte annotationer.
- Tilføjet runtime-parameter prof_bt_max for at kontrollere den maksimale stakdybde for profilering;
- Tilføjet kompileringsindstilling --enable-force-getenv for at bruge getenv i stedet for secure_getenv;
- Tilføjet kompileringsindstilling --disable-dss for at deaktivere brugen af sbrk(2);
- Tilføjet kompileringsindstillingen tcache_ncached_max for at kontrollere antallet af elementer i trådcachen.
- Tilføjet runtime-parameteren calloc_madvise_threshold for at bestemme, om kernen eller memset bruges til at nulstille allokerede hukommelsesblokke, når calloc kaldes;
- Tilføjede kompileringstidsindstillingen --disable-user-config for at deaktivere læsning af konfigurationer fra /etc/malloc.conf-filen eller fra miljøvariablen MALLOC_CONF under kørsel.
- Tilføjede runtime-parameteren disable_large_size_classes for at aktivere den nye algoritme til beregning af tilgængelig størrelse, som minimerer hukommelsesoverhead ved allokering af store hukommelsesblokke, dvs. med en størrelse >= 4 * PAGE;
- Aktiverede brugen af process_madvise og tilføjede runtime-parameteren process_madvise_max_batch for at kontrollere det maksimale antal hukommelsesregioner i hver madvise-"batch";
- mallctl-grænseflader tilføjet:
- opt.prof_bt_max;
- arena.
- thread.tcache.max for at ændre og hente tcache_max for den aktuelle tråd;
- thread.tcache.ncached_max.write og thread.tcache.ncached_max.read_sizeclass for at ændre og hente ncached_max for den aktuelle tråd;
- arenas.hugepage for at returnere den brugte hugepage-størrelse, også eksporteret til malloc-statistik;
- approximate_stats.active for at få en omtrentlig værdi af det aktuelle antal aktive bytes, som ikke bør sammenlignes med anden hentet statistik.
- Mange fejl er også blevet rettet, og dokumentationen er blevet forbedret.
Kilde: linux.org.ru
