Despois dun descanso de case catro anos (véxase "todo») tivo lugar o lanzamento da versión 5.3.1 do asignador jemalloc – unha implementación de malloc(3) que fai fincapé na prevención da fragmentación e no soporte para a concorrencia escalable.
A nova versión inclúe máis de 390 commits con correccións de erros, novas funcionalidades, optimizacións de rendemento e melloras na portabilidade.
O proxecto está escrito en C e distribúese baixo a licenza BSD.
Novas oportunidades:
- Soporte de pvalloc(3).
- Detectouse dobre libre na compilación de depuración;
- Engadiuse a opción de compilación --enable-pageid para activar a anotación mapeada na memoria.
- Engadiuse o parámetro de execución prof_bt_max para controlar a profundidade máxima da pila para a creación de perfís;
- Engadiuse a opción de compilación --enable-force-getenv para usar getenv en lugar de secure_getenv;
- Engadiuse a opción de compilación --disable-dss para desactivar o uso de sbrk(2);
- Engadiuse a opción de compilación tcache_ncached_max para controlar o número de elementos na caché de fíos.
- Engadiuse o parámetro de execución calloc_madvise_threshold para determinar se se usa o kernel ou o memset para poñer a cero os bloques de memoria asignados ao chamar a calloc;
- Engadiuse a opción de compilación --disable-user-config para desactivar a lectura de configuracións desde o ficheiro /etc/malloc.conf ou desde a variable de ambiente MALLOC_CONF durante a execución.
- Engadiuse o parámetro de execución disable_large_size_classes para activar o novo algoritmo de cálculo de tamaño dispoñible, que minimiza a sobrecarga de memoria ao asignar bloques de memoria grandes, é dicir, cun tamaño >= 4 * PAGE;
- Activouse o uso de process_madvise e engadiuse o parámetro de execución process_madvise_max_batch para controlar o número máximo de rexións de memoria en cada "lote" de madvise;
- Engadíronse as interfaces de mallctl:
- opt.prof_bt_max;
- arena.
- thread.tcache.max para cambiar e obter o tcache_max do fío actual;
- thread.tcache.ncached_max.write e thread.tcache.ncached_max.read_sizeclass para cambiar e obter o ncached_max do fío actual;
- arenas.hugepage para devolver o tamaño da páxina enorme usado, tamén exportado a malloc stats;
- approximate_stats.active para obter un valor aproximado da cantidade actual de bytes activos, que non se debe comparar con outras estatísticas recuperadas.
- Tamén se corrixiron moitos erros e mellorouse a documentación.
Fonte: linux.org.ru
