Jemalloc 5.3.1 hukommelsesstyringsbibliotek er tilgængeligt

Fire år efter offentliggørelsen af den seneste opdatering er udgivelsen af jemalloc 5.3.1 biblioteket tilgængelig, som tilbyder en alternativ implementering af malloc-funktionerne, optimeret til at reducere fragmentering og arbejde på multiprocessorsystemer. For at løse problemer med låsninger på multicore-systemer bruger jemalloc en isoleret hukommelsesallokeringsområde for hver CPU-kerne, hvilket gør det muligt at opnå lineær skalerbarhed, når antallet af tråde stiger.

I juni 2025 stoppede projektets forfatter med at vedligeholde og satte jemalloc-repositoriet i arkivtilstand, men for en måned siden genoptog virksomheden Meta udviklingen, som bruger jemalloc i deres infrastruktur. Biblioteket blev oprindeligt udviklet til FreeBSD og er blevet brugt som standard i dette operativsystem siden 2005. Koden til biblioteket er skrevet i C og distribueres under BSD-licensen.

Blandt ændringerne:

  • Funktionen pvalloc er implementeret, hvilket kan være nyttigt ved udskiftning af libc-hukommelsesallokatoren.
  • I debug-samlinger er der inkluderet en tilstand til opdagelse af dobbeltopkald til free()-funktionen. For at justere størrelsen af stakken, inden for hvilken scanningen udføres, er parameteren debug_double_free_max_scan tilføjet.
  • Bygningsmuligheden "--enable-pageid" er tilføjet til at sætte tags ved hukommelseskortlægning, ved at bruge prctl med flaget PR_SET_VMA. Når det er aktiveret, kan kortlægningen overvåges via /proc//maps.
  • Parameteren "prof_bt_max" er tilføjet, hvilket muliggør at indstille den maksimale stakdybde for profilering.
  • Bygningsmuligheden "--enable-force-getenv" er tilføjet til brug i koden som den normale getenv() funktion i stedet for den beskyttede secure_getenv().
  • Bygningsmuligheden "--disable-dss" er tilføjet for at deaktivere brugen af funktionen sbrk().
  • Parameteren "tcache_ncached_max" er tilføjet for at begrænse antallet af elementer i trådcache.
  • Parameteren "calloc_madvise_threshold" er tilføjet for at indstille brugen af kernen mekanisme madvise eller funktionen memset til at nulstille hukommelse tildelt gennem calloc-funktionen.
  • Bygningsmuligheden "--disable-user-config" er tilføjet for at deaktivere indlæsning af indstillinger fra filen /etc/malloc.conf eller miljøvariablen MALLOC_CONF.
  • Parameteren "process_madvise_max_batch" er tilføjet for at begrænse antallet af hukommelsesenheder pr. batch-operation madvise.
  • Der parameter «disable_large_size_classes» er blevet tilføjet for at deaktivere den nye algoritme til beregning af den tildelte hukommelsesstørrelse, der reducerer overhead ved tildeling af blokke, der er større end 4 sider hukommelse.
  • Der er tilføjet følgende muligheder til værktøjet mallctl: opt.prof_bt_max, arena.<i>.name, thread.tcache.max, thread.tcache.ncached_max.write, thread.tcache.ncached_max.read_sizeclass, arenas.hugepage og approximate_stats.active.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster