xref: /aosp_15_r20/art/runtime/runtime_options.def (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker/*
2*795d594fSAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project
3*795d594fSAndroid Build Coastguard Worker *
4*795d594fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License")
5*795d594fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*795d594fSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*795d594fSAndroid Build Coastguard Worker *
8*795d594fSAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*795d594fSAndroid Build Coastguard Worker *
10*795d594fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*795d594fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*795d594fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*795d594fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*795d594fSAndroid Build Coastguard Worker * limitations under the License.
15*795d594fSAndroid Build Coastguard Worker */
16*795d594fSAndroid Build Coastguard Worker
17*795d594fSAndroid Build Coastguard Worker#ifndef RUNTIME_OPTIONS_KEY
18*795d594fSAndroid Build Coastguard Worker#error "Please #define RUNTIME_OPTIONS_KEY before #including this file"
19*795d594fSAndroid Build Coastguard Worker#define RUNTIME_OPTIONS_KEY(...)  // Don't display errors in this file in IDEs.
20*795d594fSAndroid Build Coastguard Worker#endif
21*795d594fSAndroid Build Coastguard Worker
22*795d594fSAndroid Build Coastguard Worker// This file defines the list of keys for RuntimeOptions.
23*795d594fSAndroid Build Coastguard Worker// These can be used with RuntimeOptions.Get/Set/etc, for example:
24*795d594fSAndroid Build Coastguard Worker//         RuntimeOptions opt; bool* image_dex2oat_enabled = opt.Get(RuntimeOptions::ImageDex2Oat);
25*795d594fSAndroid Build Coastguard Worker//
26*795d594fSAndroid Build Coastguard Worker// Column Descriptions:
27*795d594fSAndroid Build Coastguard Worker//                   <<Type>>             <<Key Name>>                  <<Default Value>>
28*795d594fSAndroid Build Coastguard Worker//
29*795d594fSAndroid Build Coastguard Worker// Default values are only used by Map::GetOrDefault(K<T>).
30*795d594fSAndroid Build Coastguard Worker// If a default value is omitted here, T{} is used as the default value, which is
31*795d594fSAndroid Build Coastguard Worker// almost-always the value of the type as if it was memset to all 0.
32*795d594fSAndroid Build Coastguard Worker//
33*795d594fSAndroid Build Coastguard Worker// Please keep the columns aligned if possible when adding new rows.
34*795d594fSAndroid Build Coastguard Worker//
35*795d594fSAndroid Build Coastguard Worker
36*795d594fSAndroid Build Coastguard Worker// Parse-able keys from the command line.
37*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                Zygote)
38*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                PrimaryZygote)
39*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                Help)
40*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                ShowVersion)
41*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseStringList<':'>,BootClassPath)           // std::vector<std::string>
42*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseStringList<':'>,BootClassPathLocations)  // std::vector<std::string>
43*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseIntList<':'>,   BootClassPathFds)        // std::vector<int>
44*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseIntList<':'>,   BootClassPathImageFds)   // std::vector<int>
45*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseIntList<':'>,   BootClassPathVdexFds)    // std::vector<int>
46*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseIntList<':'>,   BootClassPathOatFds)     // std::vector<int>
47*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         ClassPath)
48*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ParseStringList<':'>,Image)
49*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                ForceJitZygote)
50*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                AllowInMemoryCompilation)
51*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                CheckJni)
52*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                JniOptsForceCopy)
53*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         JdwpOptions,                    "suspend=n,server=y")
54*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (JdwpProvider,        JdwpProvider,                   JdwpProvider::kUnset)
55*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           MemoryMaximumSize,              gc::Heap::kDefaultMaximumSize)  // -Xmx
56*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           MemoryInitialSize,              gc::Heap::kDefaultInitialSize)  // -Xms
57*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           HeapGrowthLimit)                // Default is 0 for unlimited
58*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           HeapMinFree,                    gc::Heap::kDefaultMinFree)
59*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           HeapMaxFree,                    gc::Heap::kDefaultMaxFree)
60*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           NonMovingSpaceCapacity,         gc::Heap::kDefaultNonMovingSpaceCapacity)
61*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           StopForNativeAllocs,            1 * GB)
62*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (double,              HeapTargetUtilization,          gc::Heap::kDefaultTargetUtilization)
63*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (double,              ForegroundHeapGrowthMultiplier, gc::Heap::kDefaultHeapGrowthMultiplier)
64*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        ParallelGCThreads,              0u)
65*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        ConcGCThreads)
66*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        FinalizerTimeoutMs,             10000u)
67*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Memory<1>,           StackSize)  // -Xss
68*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        MaxSpinsBeforeThinLockInflation,Monitor::kDefaultMaxSpinsBeforeThinLockInflation)
69*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MillisecondsToNanoseconds, \
70*795d594fSAndroid Build Coastguard Worker                                          LongPauseLogThreshold,          gc::Heap::kDefaultLongPauseLogThreshold)
71*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MillisecondsToNanoseconds, \
72*795d594fSAndroid Build Coastguard Worker                                          LongGCLogThreshold,             gc::Heap::kDefaultLongGCLogThreshold)
73*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MillisecondsToNanoseconds, ThreadSuspendTimeout)
74*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                MonitorTimeoutEnable,           false)
75*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (int,                 MonitorTimeout,                 Monitor::kDefaultMonitorTimeoutMs)
76*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DumpGCPerformanceOnShutdown)
77*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DumpRegionInfoBeforeGC)
78*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DumpRegionInfoAfterGC)
79*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DumpJITInfoOnShutdown)
80*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                IgnoreMaxFootprint)
81*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                AlwaysLogExplicitGcs,           true)
82*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                LowMemoryMode)
83*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                UseTLAB,                        kUseTlab)
84*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                EnableHSpaceCompactForOOM,      true)
85*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                UseJitCompilation,              true)
86*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                UseProfiledJitCompilation,      false)
87*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                DumpNativeStackOnSigQuit,       true)
88*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                MadviseRandomAccess,            false)
89*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        MadviseWillNeedVdexFileSize,    0)
90*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        MadviseWillNeedOdexFileSize,    0)
91*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        MadviseWillNeedArtFileSize,     0)
92*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (JniIdType,           OpaqueJniIds,                   JniIdType::kDefault)  // -Xopaque-jni-ids:{true, false, swapable}
93*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                AutoPromoteOpaqueJniIds,        true)  // testing use only. -Xauto-promote-opaque-jni-ids:{true, false}
94*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        JITOptimizeThreshold)
95*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        JITWarmupThreshold)
96*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        JITPriorityThreadWeight)
97*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        JITInvokeTransitionWeight)
98*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (int,                 JITPoolThreadPthreadPriority,   jit::kJitPoolThreadPthreadDefaultPriority)
99*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (int,                 JITZygotePoolThreadPthreadPriority,   jit::kJitZygotePoolThreadPthreadDefaultPriority)
100*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           JITCodeCacheInitialCapacity,    jit::JitCodeCache::GetInitialCapacity())
101*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MemoryKiB,           JITCodeCacheMaxCapacity,        jit::JitCodeCache::kMaxCapacity)
102*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (MillisecondsToNanoseconds, \
103*795d594fSAndroid Build Coastguard Worker                                          HSpaceCompactForOOMMinIntervalsMs,\
104*795d594fSAndroid Build Coastguard Worker                                                                          MsToNs(100 * 1000))  // 100s
105*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::vector<std::string>, \
106*795d594fSAndroid Build Coastguard Worker                                          PropertiesList)  // -D<whatever> -D<whatever> ...
107*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         JniTrace)
108*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                Relocate,                       kDefaultMustRelocate)
109*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                ImageDex2Oat,                   true)
110*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                Interpret,                      false) // -Xint
111*795d594fSAndroid Build Coastguard Worker                                                        // Disable the compiler for CC (for now).
112*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (XGcOption,           GcOption)  // -Xgc:
113*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (gc::space::LargeObjectSpaceType, \
114*795d594fSAndroid Build Coastguard Worker                                          LargeObjectSpace,               gc::Heap::kDefaultLargeObjectSpaceType)
115*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Memory<1>,           LargeObjectThreshold,           gc::Heap::kDefaultLargeObjectThreshold)
116*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (BackgroundGcOption,  BackgroundGc)
117*795d594fSAndroid Build Coastguard Worker
118*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DisableExplicitGC)
119*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DisableEagerlyReleaseExplicitGC)
120*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                NoSigChain)
121*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                ForceNativeBridge)
122*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (LogVerbosity,        Verbose)
123*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        LockProfThreshold)
124*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        StackDumpLockProfThreshold)
125*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                MethodTrace)
126*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         MethodTraceFile,                "/data/misc/trace/method-trace-file.bin")
127*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        MethodTraceFileSize,            10 * MB)
128*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                MethodTraceStreaming)
129*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (TraceClockSource,    MethodTraceClock,               kDefaultTraceClockSource)
130*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ProfileSaverOptions, ProfileSaverOpts)  // -Xjitsaveprofilinginfo, -Xps-*
131*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         Compiler)
132*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::vector<std::string>, \
133*795d594fSAndroid Build Coastguard Worker                                          CompilerOptions)  // -Xcompiler-option ...
134*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::vector<std::string>, \
135*795d594fSAndroid Build Coastguard Worker                                          ImageCompilerOptions)  // -Ximage-compiler-option ...
136*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (verifier::VerifyMode, \
137*795d594fSAndroid Build Coastguard Worker                                          Verify,                         verifier::VerifyMode::kEnable)
138*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        TargetSdkVersion, \
139*795d594fSAndroid Build Coastguard Worker                                          static_cast<unsigned int>(SdkVersion::kUnset))
140*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (hiddenapi::EnforcementPolicy,
141*795d594fSAndroid Build Coastguard Worker                                          HiddenApiPolicy,
142*795d594fSAndroid Build Coastguard Worker                                          hiddenapi::EnforcementPolicy::kDisabled)
143*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (hiddenapi::EnforcementPolicy,
144*795d594fSAndroid Build Coastguard Worker                                          CorePlatformApiPolicy,
145*795d594fSAndroid Build Coastguard Worker                                          hiddenapi::EnforcementPolicy::kDisabled)
146*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         NativeBridge)
147*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        ZygoteMaxFailedBoots,           10)
148*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         CpuAbiList)
149*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::string,         Fingerprint)
150*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (ExperimentalFlags,   Experimental,     ExperimentalFlags::kNone) // -Xexperimental:{...}
151*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::list<ti::AgentSpec>,         AgentLib)  // -agentlib:<libname>=<options>
152*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::list<ti::AgentSpec>,         AgentPath)  // -agentpath:<libname>=<options>
153*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::vector<Plugin>,            Plugins)  // -Xplugin:<library>
154*795d594fSAndroid Build Coastguard Worker
155*795d594fSAndroid Build Coastguard Worker// Not parse-able from command line, but can be provided explicitly.
156*795d594fSAndroid Build Coastguard Worker// (Do not add anything here that is defined in ParsedOptions::MakeParser)
157*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (std::vector<std::unique_ptr<const DexFile>>*, \
158*795d594fSAndroid Build Coastguard Worker                                          BootClassPathDexList)
159*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (InstructionSet,      ImageInstructionSet,            kRuntimeISA)
160*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (CompilerCallbacks*,  CompilerCallbacksPtr)  // TODO: make unique_ptr
161*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool (*)(),          HookIsSensitiveThread)
162*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (int32_t (*)(FILE* stream, const char* format, va_list ap), \
163*795d594fSAndroid Build Coastguard Worker                                          HookVfprintf,                   vfprintf)
164*795d594fSAndroid Build Coastguard Worker// Use `art::FastExit` instead of `exit` so that we won't get DCHECK failures
165*795d594fSAndroid Build Coastguard Worker// in global data destructors (see b/28106055).
166*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (void (*)(int32_t status), \
167*795d594fSAndroid Build Coastguard Worker                                          HookExit,                       art::FastExit)
168*795d594fSAndroid Build Coastguard Worker                                                                          // We don't call abort(3) by default; see
169*795d594fSAndroid Build Coastguard Worker                                                                          // Runtime::Abort.
170*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (void (*)(),          HookAbort,                      nullptr)
171*795d594fSAndroid Build Coastguard Worker
172*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                SlowDebug,                      false)
173*795d594fSAndroid Build Coastguard Worker
174*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        GlobalRefAllocStackTraceLimit,  0)  // 0 = off
175*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                UseStderrLogger)
176*795d594fSAndroid Build Coastguard Worker
177*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                OnlyUseTrustedOatFiles)
178*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (Unit,                DenyArtApexDataFiles)
179*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (unsigned int,        VerifierLoggingThreshold,       100)
180*795d594fSAndroid Build Coastguard Worker
181*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                FastClassNotFoundException,     true)
182*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                VerifierMissingKThrowFatal,     true)
183*795d594fSAndroid Build Coastguard Worker
184*795d594fSAndroid Build Coastguard Worker// Setting this to true causes ART to disable Zygote native fork loop. ART also
185*795d594fSAndroid Build Coastguard Worker// internally enables this if ZygoteJit is enabled.
186*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                ForceJavaZygoteForkLoop,        false)
187*795d594fSAndroid Build Coastguard Worker
188*795d594fSAndroid Build Coastguard Worker// Whether to allow loading of the perfetto hprof plugin.
189*795d594fSAndroid Build Coastguard Worker// Even with this option set, we will still only actually load the plugin
190*795d594fSAndroid Build Coastguard Worker// if we are on a userdebug build or the app is debuggable or profileable.
191*795d594fSAndroid Build Coastguard Worker//
192*795d594fSAndroid Build Coastguard Worker// We do not want to enable this by default because PerfettoHprof does not
193*795d594fSAndroid Build Coastguard Worker// work on host, and we do not want to enable it in tests.
194*795d594fSAndroid Build Coastguard Worker//
195*795d594fSAndroid Build Coastguard Worker// Switching this on adds ~500us to the startup on userdebug builds, or for
196*795d594fSAndroid Build Coastguard Worker// profileable / debuggable apps.
197*795d594fSAndroid Build Coastguard Worker//
198*795d594fSAndroid Build Coastguard Worker// This is set to true in frameworks/base/core/jni/AndroidRuntime.cpp.
199*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                PerfettoHprof,                  false)
200*795d594fSAndroid Build Coastguard Worker
201*795d594fSAndroid Build Coastguard Worker// This is to enable/disable Perfetto Java Heap Stack Profiling
202*795d594fSAndroid Build Coastguard WorkerRUNTIME_OPTIONS_KEY (bool,                PerfettoJavaHeapStackProf,      false)
203*795d594fSAndroid Build Coastguard Worker
204*795d594fSAndroid Build Coastguard Worker#undef RUNTIME_OPTIONS_KEY
205