jemalloc 5.3.1

After nearly four years of hiatus (see "jemalloc is back") the release of allocator 5.3.1 has taken place jemalloc – the implementation of malloc(3), which focuses on preventing fragmentation and supporting scalable parallelism.

The new release includes over 390 commits for bug fixes, new features, performance optimization, and improved portability.

The project is written in C and distributed under the BSD license.

New features:

  • support for pvalloc(3).
  • detection of double free in the debug build;
  • a compilation option —enable-pageid has been added to enable annotated memory mapping.
  • a runtime parameter prof_bt_max has been added to control the maximum stack depth for profiling;
  • a compilation option —enable-force-getenv has been added to use getenv instead of secure_getenv;
  • a compilation option —disable-dss has been added to disable the use of sbrk(2);
  • a compilation option tcache_ncached_max has been added to manage the number of elements in the thread cache.
  • a runtime parameter calloc_madvise_threshold has been added to determine whether the kernel or memset is used to zero allocated memory blocks when calling calloc;
  • a compilation option —disable-user-config has been added to disable reading runtime configurations from the file /etc/malloc.conf or from the environment variable MALLOC_CONF;
  • a runtime parameter disable_large_size_classes has been added to enable a new algorithm for calculating the available size, which minimizes memory overhead when allocating large memory blocks, i.e., with a size >= 4 * PAGE;
  • the use of process_madvise has been included and a runtime parameter process_madvise_max_batch has been added to control the maximum number of memory regions in each "batch" of madvise;
  • interfaces mallctl have been added:
    • opt.prof_bt_max;
    • arena..name for changing and getting the names of "arenas";
    • thread.tcache.max for changing and getting the current thread's tcache_max;
    • thread.tcache.ncached_max.write and thread.tcache.ncached_max.read_sizeclass for changing and getting the ncached_max of the current thread;
    • arenas.hugepage for returning the used hugepage size, also exporting it to malloc statistics;
    • approximate_stats.active for getting an approximate value of the current active byte volume, which should not be compared with other obtained statistics.
  • many bugs have also been fixed and documentation has been improved.

Source: linux.org.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster