summaryrefslogtreecommitdiffstats
path: root/runtime/globals.h
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2013-11-21 11:48:14 -0800
committerMathieu Chartier <mathieuc@google.com>2013-11-22 15:46:13 -0800
commit50482234bed852766498321f71d2ff5e46e4fec2 (patch)
tree50f7d54b3696e6d6c1fcafaa0235d64356a74436 /runtime/globals.h
parentb6b4c459ef823ba62696796542519655c79423c2 (diff)
downloadart-50482234bed852766498321f71d2ff5e46e4fec2.zip
art-50482234bed852766498321f71d2ff5e46e4fec2.tar.gz
art-50482234bed852766498321f71d2ff5e46e4fec2.tar.bz2
Compact zygote.
We now start out using the bump pointer allocator and switch to the free list collector (ROSAlloc) after the zygote forks. Before compaction: Zygote size: 9060352 After compaction Zygote size: 8425864 The main reason the size doesn't reduce more is that most of the zygote space is non-movable objects allocated by VMRuntime.newNonMovableObject. The objects which are non-movable but could be movable include around 10000 classes and some number of fields and methods. Bug: 8981901 Change-Id: Iea21b70fb7af27cb7e92d72070d278a5cd4026ac
Diffstat (limited to 'runtime/globals.h')
-rw-r--r--runtime/globals.h44
1 files changed, 22 insertions, 22 deletions
diff --git a/runtime/globals.h b/runtime/globals.h
index 1a25dfa..c2fe67e 100644
--- a/runtime/globals.h
+++ b/runtime/globals.h
@@ -26,61 +26,61 @@ typedef uint8_t byte;
typedef intptr_t word;
typedef uintptr_t uword;
-const size_t KB = 1024;
-const size_t MB = KB * KB;
-const size_t GB = KB * KB * KB;
+static constexpr size_t KB = 1024;
+static constexpr size_t MB = KB * KB;
+static constexpr size_t GB = KB * KB * KB;
-const size_t kWordSize = sizeof(word);
-const size_t kPointerSize = sizeof(void*);
+static constexpr size_t kWordSize = sizeof(word);
+static constexpr size_t kPointerSize = sizeof(void*);
-const size_t kBitsPerByte = 8;
-const size_t kBitsPerByteLog2 = 3;
-const int kBitsPerWord = kWordSize * kBitsPerByte;
-const size_t kWordHighBitMask = 1 << (kBitsPerWord - 1);
+static constexpr size_t kBitsPerByte = 8;
+static constexpr size_t kBitsPerByteLog2 = 3;
+static constexpr int kBitsPerWord = kWordSize * kBitsPerByte;
+static constexpr size_t kWordHighBitMask = 1 << (kBitsPerWord - 1);
// Required stack alignment
-const size_t kStackAlignment = 16;
+static constexpr size_t kStackAlignment = 16;
// Required object alignment
-const size_t kObjectAlignment = 8;
+static constexpr size_t kObjectAlignment = 8;
// ARM instruction alignment. ARM processors require code to be 4-byte aligned,
// but ARM ELF requires 8..
-const size_t kArmAlignment = 8;
+static constexpr size_t kArmAlignment = 8;
// MIPS instruction alignment. MIPS processors require code to be 4-byte aligned.
// TODO: Can this be 4?
-const size_t kMipsAlignment = 8;
+static constexpr size_t kMipsAlignment = 8;
// X86 instruction alignment. This is the recommended alignment for maximum performance.
-const size_t kX86Alignment = 16;
+static constexpr size_t kX86Alignment = 16;
// System page size. We check this against sysconf(_SC_PAGE_SIZE) at runtime, but use a simple
// compile-time constant so the compiler can generate better code.
-const int kPageSize = 4096;
+static constexpr int kPageSize = 4096;
// Whether or not this is a debug build. Useful in conditionals where NDEBUG isn't.
#if defined(NDEBUG)
-const bool kIsDebugBuild = false;
+static constexpr bool kIsDebugBuild = false;
#else
-const bool kIsDebugBuild = true;
+static constexpr bool kIsDebugBuild = true;
#endif
// Whether or not this is a target (vs host) build. Useful in conditionals where ART_TARGET isn't.
#if defined(ART_TARGET)
-const bool kIsTargetBuild = true;
+static constexpr bool kIsTargetBuild = true;
#else
-const bool kIsTargetBuild = false;
+static constexpr bool kIsTargetBuild = false;
#endif
#if defined(ART_USE_PORTABLE_COMPILER)
-constexpr bool kUsePortableCompiler = true;
+static constexpr bool kUsePortableCompiler = true;
#else
-constexpr bool kUsePortableCompiler = false;
+static constexpr bool kUsePortableCompiler = false;
#endif
// Garbage collector constants.
-static constexpr bool kMovingCollector = false && !kUsePortableCompiler;
+static constexpr bool kMovingCollector = true && !kUsePortableCompiler;
// True if we allow moving classes.
static constexpr bool kMovingClasses = false;
// True if we allow moving fields.