[fuchsia] Tune PrimaryGroupSizeLog to reduce fragmentation.
authorLuke Nicholson <lukenicholson@google.com>
Tue, 20 Dec 2022 02:33:51 +0000 (02:33 +0000)
committerChia-hung Duan <chiahungduan@google.com>
Tue, 20 Dec 2022 02:33:52 +0000 (02:33 +0000)
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

index 2933714..63eb325 100644 (file)
@@ -170,7 +170,7 @@ struct FuchsiaConfig {
 
   typedef SizeClassAllocator64<FuchsiaConfig> 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;