Neli aastat pĂ€rast eelmise versiooni vĂ€ljaandmist on saadaval mĂ€luhaldusraamatukogu jemalloc 5.3.1, mis pakub alternatiivset malloc-funktsioonide rakendust, optimeeritud fragmenteerimise vĂ€hendamiseks ja mitmepoolsete sĂŒsteemide jaoks. Jemallocis kasutatakse iga CPU tuuma jaoks oma isoleeritud mĂ€lujaotuse ala, et lahendada lukustamisprobleeme multituumsetes sĂŒsteemides, saavutades lineaarse skaleeritavuse koos teede arvu kasvuga.
Juuni 2025. aastal lĂ”petas projekti autor hooldamise ja arhiivisĂŒsteemi viidud jemalloci hoidla, kuid kuu aega tagasi jĂ€tkas arendust ettevĂ”te Meta, kes kasutab jemalloci oma infrastruktuuris. Raamatukogu loodi algselt FreeBSD jaoks ja see on alates 2005. aastast vaikimisi selles opsĂŒsteemis kasutusel. Raamatukogu kood on kirjutatud C keeles ja jagatakse BSD litsentsi alusel.
Muudatuste seas:
- Rakendatud on funktsioon pvalloc, mis vÔib osutuda kasulikuks libc mÀluhalduri asendamisel.
- Silumisversioonides on lubatud reĆŸiim, mis tuvastab funktsiooni free() topeltkutsumise. Staki suuruse seadmiseks, mille raames toimub skaneerimine, on lisatud parameeter debug_double_free_max_scan.
- Lisatud on kompileerimisvalik ââenable-pageidâ mĂ€lukaartide mĂ€rgistamiseks, kasutades prctl-i koos lipuga PR_SET_VMA. PĂ€rast lubamist saab kaardistamist jĂ€lgida lĂ€bi /proc//maps.
- Lisatud parameeter âprof_bt_maxâ, mis vĂ”imaldab seadistada maksimaalset stack sĂŒgavust profileerimise jaoks.
- Lisatud on kompileerimisvalik ââenable-force-getenvâ tavalise getenv() funktsiooni kasutamiseks koodis selle asemel, et kasutada kaitstud secure_getenv().
- Lisatud on kompileerimisvalik ââdisable-dssâ sbrk() funktsiooni kasutamise keelamiseks.
- Lisatud parameeter âtcache_ncached_maxâ thread cache'i elementide arvu piiramiseks.
- Lisatud parameeter âcalloc_madvise_thresholdâ mĂ€lu nullimiseks, mis on eraldatud calloc-funktsiooni kaudu, seadistamiseks kas kernel madvise mehhanismi vĂ”i memseti funktsiooni kasutamise jaoks.
- Lisatud on kompileerimisvalik ââdisable-user-configâ seadete laadimise keelamiseks failist /etc/malloc.conf vĂ”i keskkonnamuutujast MALLOC_CONF.
- Lisatud parameeter âprocess_madvise_max_batchâ piiramiseks igas madvise partiis mĂ€blokside arvu.
- Lisatud parameeter «disable_large_size_classes», et keelata uue mĂ€luhaldusalgoritmi töö, mis vĂ€hendab mĂ€lu blokeerimise kulusid, kui blokeeritud mĂ€lumaht on suurem kui 4 lehekĂŒlge.
- Tööriista mallctl on lisatud valikud: opt.prof_bt_max, arena..name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage ja approximate_stats.active.
Allikas: opennet.ru
