xref: /aosp_15_r20/external/cronet/base/cpu_reduction_experiment.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2022 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_CPU_REDUCTION_EXPERIMENT_H_
6*6777b538SAndroid Build Coastguard Worker #define BASE_CPU_REDUCTION_EXPERIMENT_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include "base/base_export.h"
9*6777b538SAndroid Build Coastguard Worker 
10*6777b538SAndroid Build Coastguard Worker namespace base {
11*6777b538SAndroid Build Coastguard Worker 
12*6777b538SAndroid Build Coastguard Worker // Returns whether the cpu cycle reduction experiment is running.
13*6777b538SAndroid Build Coastguard Worker // The goal of this experiment is to better understand the relationship between
14*6777b538SAndroid Build Coastguard Worker // total CPU cycles used across the fleet and top-line chrome metrics.
15*6777b538SAndroid Build Coastguard Worker BASE_EXPORT bool IsRunningCpuReductionExperiment();
16*6777b538SAndroid Build Coastguard Worker 
17*6777b538SAndroid Build Coastguard Worker // Must be called after FeatureList initialization and while chrome is still
18*6777b538SAndroid Build Coastguard Worker // single-threaded.
19*6777b538SAndroid Build Coastguard Worker BASE_EXPORT void InitializeCpuReductionExperiment();
20*6777b538SAndroid Build Coastguard Worker 
21*6777b538SAndroid Build Coastguard Worker // Returns true if the next sample should be recorded to an histogram
22*6777b538SAndroid Build Coastguard Worker // sub-sampled under the CPU reduction experiment. Returns true randomly for
23*6777b538SAndroid Build Coastguard Worker // ~1/1000 calls when the experiment is enabled, or always returns true when the
24*6777b538SAndroid Build Coastguard Worker // experiment is disabled.
25*6777b538SAndroid Build Coastguard Worker BASE_EXPORT bool ShouldLogHistogramForCpuReductionExperiment();
26*6777b538SAndroid Build Coastguard Worker 
27*6777b538SAndroid Build Coastguard Worker }  // namespace base
28*6777b538SAndroid Build Coastguard Worker 
29*6777b538SAndroid Build Coastguard Worker #endif  // BASE_CPU_REDUCTION_EXPERIMENT_H_
30