1// Signature format: 4.0
2package androidx.benchmark {
3
4  public final class BenchmarkState {
5    ctor @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkStateApi public BenchmarkState(optional Integer? warmupCount, optional Integer? repeatCount);
6    method @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkStateApi public java.util.List<java.lang.Double> getMeasurementTimeNs();
7    method public boolean keepRunning();
8    method @kotlin.PublishedApi internal boolean keepRunningInternal();
9    method public void pauseTiming();
10    method @SuppressCompatibility @androidx.benchmark.BenchmarkState.Companion.ExperimentalExternalReport public static void reportData(String className, String testName, @IntRange(from=0L) long totalRunTimeNs, java.util.List<java.lang.Long> dataNs, @IntRange(from=0L) int warmupIterations, @IntRange(from=0L) long thermalThrottleSleepSeconds, @IntRange(from=1L) int repeatIterations);
11    method public void resumeTiming();
12    field public static final androidx.benchmark.BenchmarkState.Companion Companion;
13    field @kotlin.PublishedApi internal int iterationsRemaining;
14  }
15
16  public static final class BenchmarkState.Companion {
17    method @SuppressCompatibility @androidx.benchmark.BenchmarkState.Companion.ExperimentalExternalReport public void reportData(String className, String testName, @IntRange(from=0L) long totalRunTimeNs, java.util.List<java.lang.Long> dataNs, @IntRange(from=0L) int warmupIterations, @IntRange(from=0L) long thermalThrottleSleepSeconds, @IntRange(from=1L) int repeatIterations);
18  }
19
20  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public static @interface BenchmarkState.Companion.ExperimentalExternalReport {
21  }
22
23  @SuppressCompatibility @androidx.benchmark.ExperimentalBlackHoleApi public final class BlackHole {
24    method public static void consume(boolean value);
25    method public static void consume(byte value);
26    method public static void consume(char value);
27    method public static void consume(double value);
28    method public static void consume(float value);
29    method public static void consume(int value);
30    method public static void consume(Object value);
31    method public static void consume(long value);
32    method public static void consume(short value);
33    field public static final androidx.benchmark.BlackHole INSTANCE;
34  }
35
36  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalBenchmarkConfigApi {
37  }
38
39  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalBenchmarkStateApi {
40  }
41
42  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalBlackHoleApi {
43  }
44
45  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public abstract class MetricCapture {
46    ctor public MetricCapture(java.util.List<java.lang.String> names);
47    method public abstract void capturePaused();
48    method public abstract void captureResumed();
49    method public abstract void captureStart(long timeNs);
50    method public abstract void captureStop(long timeNs, long[] output, int offset);
51    method public final java.util.List<java.lang.String> getNames();
52    property public final java.util.List<java.lang.String> names;
53  }
54
55  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public final class MicrobenchmarkConfig {
56    ctor public MicrobenchmarkConfig(optional java.util.List<? extends androidx.benchmark.MetricCapture> metrics, optional boolean traceAppTagEnabled, optional boolean perfettoSdkTracingEnabled, optional androidx.benchmark.ProfilerConfig? profiler);
57    method public java.util.List<androidx.benchmark.MetricCapture> getMetrics();
58    method public androidx.benchmark.ProfilerConfig? getProfiler();
59    method public boolean isPerfettoSdkTracingEnabled();
60    method public boolean isTraceAppTagEnabled();
61    property public final java.util.List<androidx.benchmark.MetricCapture> metrics;
62    property public final boolean perfettoSdkTracingEnabled;
63    property public final androidx.benchmark.ProfilerConfig? profiler;
64    property public final boolean traceAppTagEnabled;
65  }
66
67  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public abstract sealed class ProfilerConfig {
68  }
69
70  public static final class ProfilerConfig.MethodTracing extends androidx.benchmark.ProfilerConfig {
71    ctor public ProfilerConfig.MethodTracing();
72    field public static final boolean AFFECTS_MEASUREMENTS_ON_THIS_DEVICE;
73    field public static final androidx.benchmark.ProfilerConfig.MethodTracing.Companion Companion;
74  }
75
76  public static final class ProfilerConfig.MethodTracing.Companion {
77  }
78
79  public static final class ProfilerConfig.StackSampling extends androidx.benchmark.ProfilerConfig {
80    ctor public ProfilerConfig.StackSampling();
81  }
82
83  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public final class TimeCapture extends androidx.benchmark.MetricCapture {
84    ctor public TimeCapture();
85    ctor public TimeCapture(optional String name);
86    method public void capturePaused();
87    method public void captureResumed();
88    method public void captureStart(long timeNs);
89    method public void captureStop(long timeNs, long[] output, int offset);
90  }
91
92}
93
94package androidx.benchmark.perfetto {
95
96  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface ExperimentalPerfettoCaptureApi {
97  }
98
99  @SuppressCompatibility @androidx.benchmark.perfetto.ExperimentalPerfettoCaptureApi public abstract sealed class PerfettoConfig {
100  }
101
102  public static final class PerfettoConfig.Binary extends androidx.benchmark.perfetto.PerfettoConfig {
103    ctor public PerfettoConfig.Binary(byte[] bytes);
104    method public byte[] getBytes();
105    property public final byte[] bytes;
106  }
107
108  public static final class PerfettoConfig.Text extends androidx.benchmark.perfetto.PerfettoConfig {
109    ctor public PerfettoConfig.Text(String text);
110    method public String getText();
111    property public final String text;
112  }
113
114  @SuppressCompatibility @RequiresApi(23) @androidx.benchmark.perfetto.ExperimentalPerfettoCaptureApi public final class PerfettoTrace {
115    ctor public PerfettoTrace(String path);
116    method public String getPath();
117    method public static void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, optional String? userspaceTracingPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
118    method public static void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, optional String? userspaceTracingPackage, optional kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTrace,kotlin.Unit>? traceCallback, kotlin.jvm.functions.Function0<kotlin.Unit> block);
119    method public static void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
120    method public static void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, kotlin.jvm.functions.Function0<kotlin.Unit> block);
121    method public static void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, optional String? userspaceTracingPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
122    method public static void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, optional String? userspaceTracingPackage, optional kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTrace,kotlin.Unit>? traceCallback, kotlin.jvm.functions.Function0<kotlin.Unit> block);
123    method public static void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, kotlin.jvm.functions.Function0<kotlin.Unit> block);
124    method public static void record(String fileLabel, kotlin.jvm.functions.Function0<kotlin.Unit> block);
125    property public final String path;
126    field public static final androidx.benchmark.perfetto.PerfettoTrace.Companion Companion;
127  }
128
129  public static final class PerfettoTrace.Companion {
130    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, optional String? userspaceTracingPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
131    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, optional String? userspaceTracingPackage, optional kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTrace,kotlin.Unit>? traceCallback, kotlin.jvm.functions.Function0<kotlin.Unit> block);
132    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
133    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, kotlin.jvm.functions.Function0<kotlin.Unit> block);
134    method public void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, optional String? userspaceTracingPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
135    method public void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, optional String? userspaceTracingPackage, optional kotlin.jvm.functions.Function1<? super androidx.benchmark.perfetto.PerfettoTrace,kotlin.Unit>? traceCallback, kotlin.jvm.functions.Function0<kotlin.Unit> block);
136    method public void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, kotlin.jvm.functions.Function0<kotlin.Unit> block);
137    method public void record(String fileLabel, kotlin.jvm.functions.Function0<kotlin.Unit> block);
138  }
139
140}
141
142