summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLokesh Gidra <lokeshgidra@google.com>2019-11-25 10:41:23 -0800
committerLuca Stefani <luca.stefani.ge1@gmail.com>2019-11-30 12:38:07 +0100
commit2e6741974caa4810d69744bcec3e4afd8a9a00d4 (patch)
treee80d6690a1d980110e15f00ed4a5e6c0393989a3
parentdc32b857d57a2a431746e87027272b514dd94fcf (diff)
downloadandroid_art-lineage-17.0.tar.gz
android_art-lineage-17.0.tar.bz2
android_art-lineage-17.0.zip
Protect/Unprotect regions (region space) only in debug buildlineage-17.0
During performance analysis it was observed that the allocation-intensive workloads get negatively impacted by the region protect/unprotect. Therefore, we enable this only on debug builds. Some of the most affected benchmarks on Golem are as follows: Benchmark | armv8 | armv7 | x64 | x32 ------------------------------------------------------------------ BinaryTrees | 8% | 8% | 13% | 12% MicroAllocThreeFinalThrice | 13% | 8% | 27% | 30% MicroAllocThreeFinalTwice | 13% | 9% | 32% | 30% MicroAllocThreeFinal | 13% | 8% | 33% | 30% MicroAllocTwoFinal | 11% | 9% | 32% | 31% MicroAllocOneFinal | 11% | 9% | 33% | 31% MicroAllocBaseline | 12% | 9% | 33% | 34% KotlinMicroTree | -0.4% | 0.7% | 8% | 9% KotlinMicroMap | 6% | 3% | 0.7% | 1% KotlinImgProc-CheckerboardMultiply | 5% | 0.5% | 0% |-0.5% Splay | 5% | 4% | 2% | 3% MicroLazyInitSingleThreadedSlow | 8% | -2% | 17% | 7% MicroLazyInitImmutableSlow | 5% | -2% | 24% | 8% Test: golem benchmarking Bug:140130889 Change-Id: I6be646bcc069d59625112c1b9ab91bbbc5f9f627
-rw-r--r--runtime/gc/space/region_space.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/gc/space/region_space.cc b/runtime/gc/space/region_space.cc
index 823043ec75..4329a379fc 100644
--- a/runtime/gc/space/region_space.cc
+++ b/runtime/gc/space/region_space.cc
@@ -33,7 +33,7 @@ namespace space {
static constexpr uint kEvacuateLivePercentThreshold = 75U;
// Whether we protect the unused and cleared regions.
-static constexpr bool kProtectClearedRegions = true;
+static constexpr bool kProtectClearedRegions = kIsDebugBuild;
// Wether we poison memory areas occupied by dead objects in unevacuated regions.
static constexpr bool kPoisonDeadObjectsInUnevacuatedRegions = true;