Majdnem négy év szünet után (lásd "jemalloc mindent») az allokátor 5.3.1. pontjának felszabadítása megtörtént jemalloc – a malloc(3) egy olyan implementációja, amely a fragmentáció megelőzésére és a skálázható párhuzamos működés támogatására helyezi a hangsúlyt.
Az új kiadás több mint 390 commitot tartalmaz hibajavításokkal, új funkciókkal, teljesítményoptimalizálással és hordozhatósági fejlesztésekkel.
A projekt C nyelven íródott és BSD licenc alatt kerül terjesztésre.
Új funkciók:
- pvalloc(3) támogatás.
- dupla felszabadulás észlelve a hibakeresési buildben;
- Hozzáadott --enable-pageid fordítási opció a memóriához leképezett annotáció engedélyezéséhez.
- Hozzáadva a prof_bt_max futásidejű paraméter a profilozás maximális veremmélységének szabályozására;
- Hozzáadott fordítási opció: --enable-force-getenv a getenv használatához a secure_getenv helyett;
- Hozzáadva a --disable-dss fordítási opció az sbrk(2) használatának letiltásához;
- Hozzáadva a tcache_ncached_max fordítási opció a szál gyorsítótárában lévő elemek számának szabályozására.
- Hozzáadva a calloc_madvise_threshold futásidejű paraméter, amely meghatározza, hogy a kernel vagy a memset kerül-e felhasználásra a lefoglalt memóriablokkok nullázásához a calloc hívásakor;
- Hozzáadva a --disable-user-config fordítási idejű kapcsoló, amely letiltja a konfigurációk olvasását az /etc/malloc.conf fájlból vagy a MALLOC_CONF környezeti változóból futásidőben.
- Hozzáadtuk a disable_large_size_classes futásidejű paramétert az új méretszámítási algoritmus engedélyezéséhez, amely minimalizálja a memória terhelését nagy memóriablokkok lefoglalásakor, azaz ha a méret >= 4 * PAGE;
- Engedélyeztem a process_madvise használatát, és hozzáadtam a process_madvise_max_batch futásidejű paramétert, amely szabályozza az egyes madvise "batch"-ekben lévő memóriarégiók maximális számát;
- mallctl interfészek hozzáadva:
- opt.prof_bt_max;
- arena.
- thread.tcache.max a jelenlegi szál tcache_max értékének módosításához és lekéréséhez;
- thread.tcache.ncached_max.write és thread.tcache.ncached_max.read_sizeclass használatával módosíthatja és lekérheti az aktuális szál ncached_max értékét;
- arenas.hugepage a használt hugepage méret visszaadásához, amelyet a malloc statisztikákba is exportálunk;
- approximate_stats.active az aktív bájtok aktuális mennyiségének hozzávetőleges értékének lekéréséhez, amelyet nem szabad összehasonlítani más lekért statisztikákkal.
- Számos hibát is kijavítottak, és a dokumentáció is javult.
Forrás: linux.org.ru
