Efter nĂ€stan fyra Ă„rs paus (se "jemalloc allt") lanserades 5.3.1 allokeraren jemalloc â en implementation av malloc(3) dĂ€r sĂ€rskild uppmĂ€rksamhet Ă€gnas Ă„t att förhindra fragmentering och stödja skalbar parallellitet.
Den nya versionen inkluderar fler Àn 390 commits med buggfixar, nya funktioner, prestandaoptimeringar och förbÀttrad portabilitet.
Projektet Àr skrivet i C och distribueras under BSD-licensen.
Nya funktioner:
- stöd för pvalloc(3).
- detektering av dubbel minnesfrislÀppning i debug-build;
- en ny kompilationsparameter âenable-pageid har lagts till för att aktivera annotering av minnesavbildning.
- en runtime-parameter prof_bt_max för att styra den maximala stackdjupet för profilering har lagts till;
- en kompilationsparameter âenable-force-getenv har lagts till för att anvĂ€nda getenv istĂ€llet för secure_getenv;
- en kompilationsparameter âdisable-dss har lagts till för att inaktivera anvĂ€ndning av sbrk(2);
- en kompilationsparameter tcache_ncached_max har lagts till för att styra antalet element i trÄdköket.
- en runtime-parameter calloc_madvise_threshold har lagts till för att bestÀmma om kernel eller memset anvÀnds för att nollstÀlla allokerade minnesblock vid anrop av calloc;
- en kompilationsparameter âdisable-user-config har lagts till för att inaktivera upplĂ€sning av konfigurationer frĂ„n filen /etc/malloc.conf eller frĂ„n miljövariabeln MALLOC_CONF vid körning;
- en runtime-parameter disable_large_size_classes har lagts till för att sÀkerstÀlla att den nya algoritmen för berÀkning av tillgÀnglig storlek fungerar, vilket minimerar minnesoverhead vid allokering av stora minnesblock, det vill sÀga med storlek >= 4 * PAGE;
- anvÀndning av process_madvise har lagts till och en runtime-parameter process_madvise_max_batch för att styra det maximala antalet minnesregioner i varje "batch" madvise har lagts till;
- mallctl-grÀnssnitt har lagts till:
- opt.prof_bt_max;
- arena..name för att Àndra och hÀmta namn pÄ "arenor";
- 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 Äterge den anvÀnda storleken av hugepage, Àven exporterade till malloc-statistik;
- approximate_stats.active för att fÄ ett ungefÀrligt vÀrde av den nuvarande mÀngden aktiva bytes, som inte bör jÀmföras med andra fÄngade statistiska data.
- mÄnga buggar har ocksÄ ÄtgÀrdats och dokumentationen har förbÀttrats.
KĂ€lla: linux.org.ru
