Pas almost katër vjet pushimi (shih "jemalloc gjithashtu") u lëshua versioni 5.3.1 i alokatorit jemalloc – një implementim i malloc(3), ku vëmendje e veçantë i është kushtuar parandalimit të fragmentimit dhe mbështetjes së paralelizmit të shkallëzuar.
Versioni i ri përfshin më shumë se 390 commit-e me korrigjime gabimesh, funksionalitete të reja, optimizim të performancës dhe përmirësim të portueshmërisë.
Projekti është shkruar në gjuhën C dhe shpërndahet nën licencën BSD.
Funksionalitete të reja:
- mbështetje për pvalloc(3).
- zbulimi i çlirimit të dyfishtë të memories në ndërtimin e diagnostikimit;
- shtuar opsioni i kompilimit —enable-pageid për përfshirjen e annotimeve të memories së shfaqur.
- shtuar parametrin runtime prof_bt_max për të menaxhuar thellësinë maksimale të stack-ut për profilizimin;
- shtuar opsioni i kompilimit —enable-force-getenv për të përdorur getenv në vend të secure_getenv;
- shtuar opsioni i kompilimit —disable-dss për të çaktivizuar përdorimin e sbrk(2);
- shtuar opsioni i kompilimit tcache_ncached_max për të menaxhuar numrin e elementeve në cache të threads.
- shtuar parametrin runtime calloc_madvise_threshold për të përcaktuar se a përdoret bërthama apo memset për të zeruar blloqet e memories të alokuara gjatë thirrjes calloc;
- shtuar opsioni i kompilimit —disable-user-config për të çaktivizuar leximin në kohë reale të konfigurimeve nga dosja \/etc\/(malloc.conf) ose nga variabla ambienti MALLOC_CONF;
- shtuar parametrin runtime disable_large_size_classes për të siguruar funksionimin e algoritmit të ri për llogaritjen e madhësisë së disponueshme, i cili minimizon shpenzimet e memories kur alokon blloqe të mëdha, dmth me madhësi >= 4 * PAGE;
- përfshirë përdorimin e process_madvise dhe shtuar parametrin runtime process_madvise_max_batch për menaxhimin e numrit maksimal të rajoneve të memories në secilën "grupe" madvise;
- shtuar ndërfaqet mallctl:
- opt.prof_bt_max;
- arena.<i>.name për të ndryshuar dhe marrë emrat e "arenave";
- thread.tcache.max për të ndryshuar dhe marrë tcache_max të thread-it aktual;
- thread.tcache.ncached_max.write dhe thread.tcache.ncached_max.read_sizeclass për të ndryshuar dhe marrë ncached_max të thread-it aktual;
- arenas.hugepage për të kthyer madhësinë e përdorur të hugepage, gjithashtu duke e eksportuar në statistikat e malloc;
- approximate_stats.active për të marrë një vlerë afërsisht të sasisë aktuale të bajtëve aktivë, e cila nuk duhen krahasuar me të dhëna të tjera statistikash.
- po ashtu janë rregulluar shumë gabime dhe përmirësuar dokumentacioni.
Burimi: linux.org.ru
