From ab17a08d0f6ffd93cb25b46a4ed5e6ebe5af530e Mon Sep 17 00:00:00 2001 From: Luke Nicholson Date: Tue, 20 Dec 2022 02:33:51 +0000 Subject: [PATCH] [fuchsia] Tune PrimaryGroupSizeLog to reduce fragmentation. 21U is the default group size, which demonstrates ~15mb reduction in heap size for some highly fragmented heaps on Fuchsia, and a general 5mb savings when devices are under no load. Microbenchmarks show no performance regressions, but most of our benchmarks perform no significant mallocs. So we are choosing the default setting, and monitoring for potential performance issues. Reviewed By: Chia-hungDuan Differential Revision: https://reviews.llvm.org/D140311 --- compiler-rt/lib/scudo/standalone/allocator_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler-rt/lib/scudo/standalone/allocator_config.h b/compiler-rt/lib/scudo/standalone/allocator_config.h index 2933714..63eb325 100644 --- a/compiler-rt/lib/scudo/standalone/allocator_config.h +++ b/compiler-rt/lib/scudo/standalone/allocator_config.h @@ -170,7 +170,7 @@ struct FuchsiaConfig { typedef SizeClassAllocator64 Primary; static const uptr PrimaryRegionSizeLog = 30U; - static const uptr PrimaryGroupSizeLog = 30U; + static const uptr PrimaryGroupSizeLog = 21U; typedef u32 PrimaryCompactPtrT; static const bool PrimaryEnableRandomOffset = true; static const uptr PrimaryMapSizeIncrement = 1UL << 18; -- 2.7.4