Foi publicada a biblioteca de gerenciamento de memória jemalloc 5.3

Foi lançado o release da biblioteca de gerenciamento de memória jemalloc 5.4.0, que oferece uma implementação alternativa das funções malloc, otimizada para reduzir a fragmentação e operar em sistemas multiprocessados. Para resolver problemas de bloqueios em sistemas multinúcleos, o jemalloc utiliza uma área isolada de alocação de memória para cada núcleo da CPU, permitindo uma escalabilidade linear à medida que o número de threads aumenta.

Em junho de 2025, o autor do projeto interrompeu o suporte e arquivou o repositório jemalloc, mas em março deste ano, a empresa Meta, que utiliza o jemalloc em sua infraestrutura, retomou o desenvolvimento. Originalmente, a biblioteca foi desenvolvida para o FreeBSD e é usada como padrão nesse sistema operacional desde 2005. O código da biblioteca é escrito em C e é distribuído sob a licença BSD.

Entre as alterações:

  • A lógica de preenchimento e redefinição do tcache (Thread Local Cache) foi simplificada, assim como a gestão da alocação de memória.
  • Os alocadores de páginas de memória PAC (Page Allocator Classic) e HPA (Huge Page Allocator) foram unificados. O complexo mecanismo de chamadas indiretas através da vtable (PAI vtable) foi removido.
  • Para facilitar a manutenção e a expansão das plataformas, todas as operações dependentes da plataforma foram movidas para arquivos de cabeçalho separados.
  • A despachante de comandos mallctl foi simplificada, assim como a infraestrutura de geração e exibição de estatísticas.
  • Adicionado o flag EXTENT_ALLOC_FLAG_PINNED, que permite marcar áreas de mapeamento de memória não desalocáveis, como páginas HugeTLB, para reutilização prioritária. Novas interfaces mallctl foram adicionadas para obter estatísticas de uso de memória fixa: stats.pinned, stats.arenas.<i>.pinned, stats.arenas.<i>.extents.<j>.npinned, stats.arenas.<i>.extents..pinned_bytes e stats.arenas.<i>.mutexes.extents_pinned.{counter}.
  • O conteúdo das estatísticas malloc foi sincronizado em formatos legíveis e JSON.
  • Os parâmetros obsoletos lg_tcache_nslots_mul, tcache_nslots_small_min, tcache_nslots_small_max, tcache_nslots_large, tcache_gc_delay_bytes, lg_tcache_flush_small_div e lg_tcache_flush_large_div foram removidos.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster