Minnehåndteringsbiblioteket jemalloc 5.3.1 er nå tilgjengelig.

Fire år etter forrige oppdatering er jemalloc 5.3.1, et minnehåndteringsbibliotek, nå tilgjengelig. Det tilbyr en alternativ implementering av malloc-funksjoner som er optimalisert for å redusere fragmentering og kjøre på flerprosessorsystemer. For å løse låseproblemer på flerkjernesystemer bruker jemalloc sitt eget isolerte minneallokeringsområde for hver CPU-kjerne, noe som muliggjør lineær skalerbarhet etter hvert som antallet tråder øker.

I juni 2025 opphørte prosjektets forfatter vedlikeholdet og arkiverte jemalloc-depotet, men utviklingen ble gjenopptatt for en måned siden av Meta, som bruker jemalloc i sin infrastruktur. Biblioteket ble opprinnelig utviklet for FreeBSD og har blitt brukt som standard på det operativsystemet siden 2005. Bibliotekkoden er skrevet i C og distribuert under BSD-lisensen.

Blant endringene:

  • pvalloc-funksjonen er implementert, noe som kan være nyttig når man erstatter libc-minneallokatoren.
  • Dobbeltkallsdeteksjon for free()-funksjonen er aktivert i feilsøkingsbygg. Parameteren debug_double_free_max_scan er lagt til for å konfigurere stakkstørrelsen som brukes til skanning.
  • La til byggealternativet "--enable-pageid" for å sette minnetilordningskoder ved hjelp av prctl med PR_SET_VMA-flagget. Når tilordningen er aktivert, kan den overvåkes via /proc/ /kart.
  • La til parameteren «prof_bt_max», som lar deg angi maksimal stakkdybde for profilering.
  • La til byggealternativet "--enable-force-getenv" for å tvinge kode til å bruke den vanlige getenv()-funksjonen i stedet for secure_getenv().
  • La til byggealternativet "--disable-dss" for å deaktivere bruk av sbrk()-funksjonen.
  • La til parameteren «tcache_ncached_max» for å begrense antall elementer i trådbufferen.
  • La til alternativet «calloc_madvise_threshold» for å konfigurere om madvise-kjernemekanismen eller memset-funksjonen skal brukes til å nullstille minne tildelt via calloc-funksjonen.
  • La til byggealternativet "--disable-user-config" for å deaktivere lasting av innstillinger fra /etc/malloc.conf-filen eller miljøvariabelen MALLOC_CONF.
  • La til parameteren «process_madvise_max_batch» for å begrense antall minneblokker for hver madvise-batchoperasjon.
  • La til parameteren «disable_large_size_classes» for å deaktivere den nye algoritmen for beregning av minneallokeringsstørrelse, som reduserer overhead ved allokering av blokker som er større enn 4 minnesider.
  • Alternativer er lagt til i mallctl-verktøyet: opt.prof_bt_max, arena.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster