Pēc gandrīz četru gadu pārtraukuma (sk. "jemalloc viss») notika sadalītāja 5.3.1. punkta izlaišana jemalloc – malloc(3) ieviešana, kas uzsver fragmentācijas novēršanu un atbalstu mērogojamai vienlaicībai.
Jaunajā laidienā ir iekļauti vairāk nekā 390 labojumi ar kļūdu labojumiem, jaunām funkcijām, veiktspējas optimizācijām un pārnesamības uzlabojumiem.
Projekts ir rakstīts C valodā un izplatīts saskaņā ar BSD licenci.
Jaunas iespējas:
- pvalloc(3) atbalsts.
- atkļūdošanas versijā konstatēta dubultbrīva darbība;
- Pievienota kompilēšanas opcija --enable-pageid, lai iespējotu atmiņā kartētu anotāciju.
- Pievienots izpildlaika parametrs prof_bt_max, lai kontrolētu maksimālo kaudzes dziļumu profilēšanai;
- Pievienota kompilēšanas opcija --enable-force-getenv, lai izmantotu getenv secure_getenv vietā;
- Pievienota kompilēšanas opcija --disable-dss, lai atspējotu sbrk(2) lietošanu;
- Pievienota kompilēšanas opcija tcache_ncached_max, lai kontrolētu pavediena kešatmiņā esošo vienumu skaitu.
- Pievienots izpildlaika parametrs calloc_madvise_threshold, lai noteiktu, vai, izsaucot calloc, piešķirto atmiņas bloku nullēšanai tiek izmantots kodols vai memset;
- Pievienota kompilēšanas laika opcija --disable-user-config, lai izpildes laikā atspējotu konfigurāciju lasīšanu no faila /etc/malloc.conf vai no vides mainīgā MALLOC_CONF.
- Pievienots izpildlaika parametrs disable_large_size_classes, lai iespējotu jauno pieejamo izmēra aprēķināšanas algoritmu, kas samazina atmiņas slodzi, piešķirot lielus atmiņas blokus, t. i., ar izmēru >= 4 * PAGE;
- Iespējota process_madvise izmantošana un pievienots izpildlaika parametrs process_madvise_max_batch, lai kontrolētu maksimālo atmiņas reģionu skaitu katrā madvise "partijā";
- mallctl saskarnes pievienotas:
- opt.prof_bt_max;
- arena.
- thread.tcache.max, lai mainītu un iegūtu pašreizējā pavediena tcache_max;
- thread.tcache.ncached_max.write un thread.tcache.ncached_max.read_sizeclass, lai mainītu un iegūtu pašreizējā pavediena ncached_max;
- arenas.hugepage, lai atgrieztu izmantoto hugepage izmēru, kas arī tiek eksportēts uz malloc statistiku;
- approximate_stats.active, lai iegūtu aptuvenu pašreizējā aktīvo baitu skaita vērtību, kas nav jāsalīdzina ar citiem izgūtajiem statistikas datiem.
- Ir arī izlabotas daudzas kļūdas un uzlabota dokumentācija.
Avots: linux.org.ru
