jemalloc 5.3.1

Después de casi cuatro años de pausa (ver «jemalloc todo») se lanzó la versión 5.3.1 del asignador jemalloc – la implementación de malloc(3), que se centra especialmente en prevenir la fragmentación y en soportar la paralelización escalable.

La nueva versión incluye más de 390 commits con correcciones de errores, nuevas funciones, optimizaciones de rendimiento y mejoras en la portabilidad.

El proyecto está escrito en C y se distribuye bajo la licencia BSD.

Nuevas características:

  • soporte para pvalloc(3).
  • detección de doble liberación de memoria en la compilación de depuración;
  • se añadió la opción de compilación —enable-pageid para habilitar la anotación de la memoria asignada.
  • se añadió el parámetro en tiempo de ejecución prof_bt_max para controlar la profundidad máxima del stack para la profilación;
  • se añadió la opción de compilación —enable-force-getenv para utilizar getenv en lugar de secure_getenv;
  • se añadió la opción de compilación —disable-dss para desactivar el uso de sbrk(2);
  • se añadió la opción de compilación tcache_ncached_max para controlar el número de elementos en la caché de hilos.
  • se añadió el parámetro en tiempo de ejecución calloc_madvise_threshold para determinar si se utiliza el núcleo o memset para inicializar a cero los bloques de memoria asignados en la llamada a calloc;
  • se añadió la opción de compilación —disable-user-config para desactivar la lectura durante la ejecución de configuraciones desde el archivo /etc/malloc.conf o desde la variable de entorno MALLOC_CONF;
  • se añadió el parámetro en tiempo de ejecución disable_large_size_classes para garantizar el funcionamiento del nuevo algoritmo de cálculo del tamaño disponible, que minimiza el overhead de memoria al asignar grandes bloques de memoria, es decir, de tamaño >= 4 * PAGE;
  • se incluyó el uso de process_madvise y se añadió el parámetro en tiempo de ejecución process_madvise_max_batch para controlar el número máximo de regiones de memoria en cada 'lote' de madvise;
  • se añadieron interfaces mallctl:
    • opt.prof_bt_max;
    • arena..name para cambiar y obtener los nombres de las 'arénas';
    • thread.tcache.max para cambiar y obtener tcache_max del hilo actual;
    • thread.tcache.ncached_max.write y thread.tcache.ncached_max.read_sizeclass para cambiar y obtener ncached_max del hilo actual;
    • arenas.hugepage para devolver el tamaño de hugepage utilizado, también exportándolo a las estadísticas de malloc;
    • approximate_stats.active para obtener un valor aproximado del volumen actual de bytes activos, que no debe compararse con otros datos estadísticos obtenidos.
  • también se corrigieron muchos errores y se mejoró la documentación.

Fuente: linux.org.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster