ááąá¸áážá áşááŽá¸ááŤá¸ áĄááŹá¸áá°ááźáŽá¸ááąáŹááş ("áááŻááźááˇáşááŤ"jemalloc áĄááŹáĄáŹá¸ááŻáśá¸Âť) áá˝á˛ááąááąá¸áá° á .á.á áá˝ááşáážááážáŻ ááźá áşáá˝áŹá¸áá˛áˇáááşá jemalloc â ááźááŻáá˝á˛áážáŻááŹáá˝ááşááźááşá¸áážááˇáş scalable concurrency áĄáá˝ááş ááśáˇáááŻá¸áážáŻááᯠáĄááąá¸ááąá¸áááˇáş malloc(3) á áĄááąáŹááşáĄáááşááąáŹáşáážáŻáá áşááŻá
ááŽááŹá¸áážááşá¸áĄáá áşáážáŹ commit ááá ááťáąáŹáşááŤáááşááźáŽá¸ bug fix áá˝áąá feature áĄáá áşáá˝áąá performance optimization áá˝áąáá˛áˇ portability áááŻá¸áááşáážáŻáá˝áą ááŤáááşááŤáááşá
ááŽáááąáŹááťááşááᯠC ááźááˇáşááąá¸ááŹá¸ááŹá¸ááźáŽá¸ BSD áááŻááşá ááşáĄáąáŹááşáá˝ááş ááźááˇáşááąááŹá¸áááşá
áĄáá˝ááşáĄááźááşáá áş:
- pvalloc(3) ááśáˇáááŻá¸áážáŻá
- debug build áážáŹ double free áá˝áąáˇáážááááŤáááşá
- áážááşááŹááş-ááźáąááŻáśááąáŤáşáá˝ááş áážááşááťááşááąá¸áááˇáşá áá áşááᯠáá˝ááˇáşáááşáĄáá˝ááş --enable-pageid compile option ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- profiling áĄáá˝ááş áĄááťáŹá¸ááŻáśá¸ stack depth ááᯠááááşá¸ááťáŻááşáááş runtime parameter prof_bt_max ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- secure_getenv áĄá áŹá¸ getenv áááŻáĄááŻáśá¸ááźáŻáááş compile option --enable-force-getenv áááŻáááˇáşáá˝ááşá¸ááŹá¸áááşá
- sbrk(2) áĄááŻáśá¸ááźáŻáážáŻááᯠááááşáááş --disable-dss compile option ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- thread cache áá˛á item áĄááąáĄáá˝ááşááᯠááááşá¸ááťáŻááşáááŻáˇ tcache_ncached_max compile option ááᯠáááˇáşáá˝ááşá¸ááŹá¸ááŤáááşá
- calloc áááŻááąáŤáşáá˛áˇáĄá፠kernel ááŤáážáááŻááş memset ááᯠáá˝á˛ááąááąá¸ááŹá¸áá˛áˇ memory blocks áá˝áąááᯠzero out ááŻááşáááŻáˇáĄáá˝ááş áĄááŻáśá¸ááźáŻáááŹá¸áááŻááŹááᯠááŻáśá¸ááźááşáááŻáˇ runtime parameter calloc_madvise_threshold áááŻáááˇáşáá˝ááşá¸ááŹá¸ááŤáááşá
- /etc/malloc.conf áááŻááşááž áááŻáˇáááŻááş runtime áážá MALLOC_CONF environment variable ááž configuration ááťáŹá¸ááᯠáááşáážáŻááźááşá¸ááᯠááááşáááş --disable-user-config compile-time option ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- áážááşááŹááşáááąáŹááşááźáŽá¸ááťáŹá¸ááᯠáá˝á˛ááąááąá¸áááˇáşáĄááŤá áááŻáááŻáááşáážáŹ áĄáá˝ááşáĄá áŹá¸ >= 4 * PAGE ááźááˇáş áážááşááŹááş overhead ááᯠááťážáąáŹáˇááťááąá¸áááˇáş ááážááááŻááşááąáŹ áĄáá˝ááşáĄá áŹá¸áá˝ááşááťááşáážáŻ áĄááşááááŻááŽáááşáĄáá áşááᯠáá˝ááˇáşáááş runtime parameter disable_large_size_classes ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- process_madvise áĄááŻáśá¸ááźáŻáážáŻááᯠáá˝ááˇáşááźáŽá¸ madvise "batch" áá áşááŻá áŽáá˝ááş áážááşááŹááşááąáááťáŹá¸á áĄááťáŹá¸ááŻáśá¸áĄááąáĄáá˝ááşááᯠááááşá¸ááťáŻááşáááş runtime parameter process_madvise_max_batch ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááşá
- mallctl interface ááťáŹá¸ááᯠáááˇáşáá˝ááşá¸ááŹá¸áááş-
- opt.prof_bt_max;
- arenaá
- áááşáážá thread áá˛áˇ tcache_max ááᯠááźáąáŹááşá¸áá˛ááźáŽá¸ ááá°áááŻáˇáĄáá˝ááş thread.tcache.max ááᯠáĄááŻáśá¸ááźáŻááŤá
- áááşáážá thread áá˛áˇ ncached_max ááᯠááźáąáŹááşá¸áá˛ááźáŽá¸ ááá°áááŻáˇáĄáá˝ááş thread.tcache.ncached_max.write áá˛áˇ thread.tcache.ncached_max.read_sizeclass ááᯠáĄááŻáśá¸ááźáŻááŤá
- áĄááŻáśá¸ááźáŻááźáŽá¸ááŹá¸ hugepage áĄáá˝ááşáĄá áŹá¸ááᯠááźááşááąá¸áááşá malloc stats áááŻáˇáááşá¸ ááŻááşáá°áááş arenas.hugepage;
- áááşáážá active byte áááŹáá áááˇáşáážááşá¸áááşáááŻá¸ááᯠááá°áááş approximate_stats.active ááᯠáĄááŻáśá¸ááźáŻááźáŽá¸ áááşá¸ááᯠáĄááźáŹá¸ááá°ááŹá¸ááąáŹ á áŹáááşá¸áĄááşá¸ááťáŹá¸áážááˇáş áážááŻááşá¸áážááşáááááŤá
- ááťááŻáˇáá˝ááşá¸ááťááşááťáŹá¸á á˝áŹáááŻáááşá¸ ááźááşáááşááźáŽá¸ááźá áşááźáŽá¸ á áŹáá˝ááşá áŹáááşá¸ááťáŹá¸áááŻáááşá¸ áááŻáááŻááąáŹááşá¸áá˝ááşáĄáąáŹááş ááźáŻááŻááşááŹá¸ááŤáááşá
source: linux.org.ru
