scieee AI-readable full text Open interactive document viewer

Artifact of SSBSE '25 Challenge: GreenMalloc: Allocator Optimisation for Industrial Workloads

Dakhama, Aidan; Langdon, W.B.; Even Mendoza, Karine; Menendez, Hector

Abstract

1. Abstract This is the artifact of the paper GreenMalloc: Allocator Optimisation for Industrial Workloads. It contains the code of GreenMalloc and the results of the evaluation on gem5 with glibc malloc and tcmalloc. The GitHub of the project is available online as open source: https://github.com/dakaidan/SSBSE25-GreenBenchmark. 2. Optimised Values glibc: - mmap_max - mmap_threshold - perturb - top_pad - trim_threshold - arena_test - arena_max tcmalloc: - TCMALLOC_SAMPLE_PARAMETER - TCMALLOC_RELEASE_RATE - TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES - TCMALLOC_AGGRESSIVE_DECOMMIT - TCMALLOC_OVERRIDE_PAGESIZE - TCMALLOC_HEAP_LIMIT_MB - TCMALLOC_SKIP_MMAP - TCMALLOC_SKIP_SBRK - TCMALLOC_MEMFS_LIMIT_MB - TCMALLOC_MEMFS_ABORT_ON_FAIL - TCMALLOC_MEMFS_IGNORE_MMAP_FAIL - TCMALLOC_MEMFS_MAP_PRIVATE - TCMALLOC_MEMFS_DISABLE_FALLBACK Specifically, we tune: TUNABLE_SPECS: ClassVar[Dict[str, Dict[str, Any]]] = { "mmap_max": {"type": "int", "low": 0, "high": 16 * 1024 * 1024}, "mmap_threshold": {"type": "int", "low": 0, "high": 1 << 20}, "perturb": {"type": "int", "low": 0, "high": 255}, "top_pad": {"type": "int", "low": 0, "high": 1 << 20}, "trim_threshold": {"type": "int", "low": 0, "high": 1 << 20}, "arena_test": {"type": "int", "low": 0, "high": 1 << 20}, "arena_max": {"type": "int", "low": 0, "high": 128},} TUNABLE_SPECS: ClassVar[Dict[str, Dict[str, Any]]] = { "TCMALLOC_SAMPLE_PARAMETER": {"type": "int", "low": 0, "high": 1 << 20}, "TCMALLOC_RELEASE_RATE": {"type": "int", "low": 0, "high": 1 << 20}, "TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES": {"type": "int", "low": 0, "high": 1 << 30}, "TCMALLOC_AGGRESSIVE_DECOMMIT": {"type": "bool", "low": 0, "high": 1}, "TCMALLOC_OVERRIDE_PAGESIZE": {"type": "int", "low": 4096, "high": 1 << 20}, "TCMALLOC_HEAP_LIMIT_MB": {"type": "int", "low": 0, "high": 1 << 20}, "TCMALLOC_SKIP_MMAP": {"type": "bool", "low": 0, "high": 1}, "TCMALLOC_SKIP_SBRK": {"type": "bool", "low": 0, "high": 1}, "TCMALLOC_MEMFS_LIMIT_MB": {"type": "int", "low": 0, "high": 1 << 20}, "TCMALLOC_MEMFS_ABORT_ON_FAIL": {"type": "bool", "low": 0, "high": 1}, "TCMALLOC_MEMFS_IGNORE_MMAP_FAIL": {"type": "bool", "low": 0, "high": 1}, "TCMALLOC_MEMFS_MAP_PRIVATE": {"type": "bool", "low": 0, "high": 1}, "TCMALLOC_MEMFS_DISABLE_FALLBACK": {"type": "bool", "low": 0, "high": 1}, }

Full text

Def glibc Opt glibc Def tcmalloc Opt tcmalloc 1.69×108 1.71×108 1.73×108 1.75×108 1.77×108 1.79×108 1.81×108 1.83×108 1.85×108 1.87×108 1.89×108 1.91×108 1.93×108 Scheme Bytes Average Heap Size Opt glibc Def tcmalloc Opt tcmalloc Def glibc