diff options
author | Dan Liew <dan@su-root.co.uk> | 2018-09-24 09:28:35 +0000 |
---|---|---|
committer | Dan Liew <dan@su-root.co.uk> | 2018-09-24 09:28:35 +0000 |
commit | 603f94a9c01c529bf7646780e74ff606b75a158a (patch) | |
tree | b7ae67ad854294ba6e07dc4e4a45c6ddc77dd5d5 /test | |
parent | 11660ddaa868c650e21546b1761b5dc88e04f7ef (diff) |
Fix the configuration of the Primary allocator for Darwin ARM64 by
changing the value of `SANITIZER_MMAP_RANGE_SIZE` to something more
sensible. The available VMA is at most 64GiB and not 256TiB that
was previously being used.
This change gives us several wins:
* Drastically improves LeakSanitizer performance on
Darwin ARM64 devices. On a simple synthentic benchmark
this took leak detection time from ~30 seconds to 0.5 seconds
due to the `ForEachChunk(...)` method enumerating a much smaller
number of regions. Previously we would pointlessly iterate
over a large portion of the SizeClassAllocator32's ByteMap
that would could never be set due it being configured for a much
larger VM space than is actually availble.
* Decreases the memory required for the Primary allocator.
Previously the ByteMap inside the the allocator used
an array of pointers that took 512KiB of space. Now the required
space for the array is 128 bytes.
rdar://problem/43509428
Differential Revision: https://reviews.llvm.org/D51173
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@342868 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
0 files changed, 0 insertions, 0 deletions