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 @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalBenchmarkConfigApi {
24  }
25
26  @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalBenchmarkStateApi {
27  }
28
29  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public abstract class MetricCapture {
30    ctor public MetricCapture(java.util.List<java.lang.String> names);
31    method public abstract void capturePaused();
32    method public abstract void captureResumed();
33    method public abstract void captureStart(long timeNs);
34    method public abstract void captureStop(long timeNs, long[] output, int offset);
35    method public final java.util.List<java.lang.String> getNames();
36    property public final java.util.List<java.lang.String> names;
37  }
38
39  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public final class MicrobenchmarkConfig {
40    ctor public MicrobenchmarkConfig(optional java.util.List<? extends androidx.benchmark.MetricCapture> metrics, optional boolean shouldEnableTraceAppTag, optional boolean shouldEnablePerfettoSdkTracing, optional androidx.benchmark.ProfilerConfig? profiler);
41    method public java.util.List<androidx.benchmark.MetricCapture> getMetrics();
42    method public androidx.benchmark.ProfilerConfig? getProfiler();
43    method public boolean shouldEnablePerfettoSdkTracing();
44    method public boolean shouldEnableTraceAppTag();
45    property public final java.util.List<androidx.benchmark.MetricCapture> metrics;
46    property public final androidx.benchmark.ProfilerConfig? profiler;
47    property public final boolean shouldEnablePerfettoSdkTracing;
48    property public final boolean shouldEnableTraceAppTag;
49  }
50
51  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public abstract sealed class ProfilerConfig {
52  }
53
54  public static final class ProfilerConfig.MethodTracing extends androidx.benchmark.ProfilerConfig {
55    ctor public ProfilerConfig.MethodTracing();
56  }
57
58  public static final class ProfilerConfig.StackSampling extends androidx.benchmark.ProfilerConfig {
59    ctor public ProfilerConfig.StackSampling();
60  }
61
62  @SuppressCompatibility @androidx.benchmark.ExperimentalBenchmarkConfigApi public final class TimeCapture extends androidx.benchmark.MetricCapture {
63    ctor public TimeCapture();
64    method public void capturePaused();
65    method public void captureResumed();
66    method public void captureStart(long timeNs);
67    method public void captureStop(long timeNs, long[] output, int offset);
68  }
69
70}
71
72package androidx.benchmark.perfetto {
73
74  @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 {
75  }
76
77  @SuppressCompatibility @androidx.benchmark.perfetto.ExperimentalPerfettoCaptureApi public abstract sealed class PerfettoConfig {
78  }
79
80  public static final class PerfettoConfig.Binary extends androidx.benchmark.perfetto.PerfettoConfig {
81    ctor public PerfettoConfig.Binary(byte[] bytes);
82    method public byte[] getBytes();
83    property public final byte[] bytes;
84  }
85
86  public static final class PerfettoConfig.Text extends androidx.benchmark.perfetto.PerfettoConfig {
87    ctor public PerfettoConfig.Text(String text);
88    method public String getText();
89    property public final String text;
90  }
91
92  @SuppressCompatibility @RequiresApi(23) @androidx.benchmark.perfetto.ExperimentalPerfettoCaptureApi public final class PerfettoTrace {
93    ctor public PerfettoTrace(String path);
94    method public String getPath();
95    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);
96    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);
97    method public static void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
98    method public static void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, kotlin.jvm.functions.Function0<kotlin.Unit> block);
99    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);
100    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);
101    method public static void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, kotlin.jvm.functions.Function0<kotlin.Unit> block);
102    method public static void record(String fileLabel, kotlin.jvm.functions.Function0<kotlin.Unit> block);
103    property public final String path;
104    field public static final androidx.benchmark.perfetto.PerfettoTrace.Companion Companion;
105  }
106
107  public static final class PerfettoTrace.Companion {
108    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, optional String? userspaceTracingPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
109    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);
110    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, optional String highlightPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
111    method public void record(String fileLabel, androidx.benchmark.perfetto.PerfettoConfig config, kotlin.jvm.functions.Function0<kotlin.Unit> block);
112    method public void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, optional String? userspaceTracingPackage, kotlin.jvm.functions.Function0<kotlin.Unit> block);
113    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);
114    method public void record(String fileLabel, optional java.util.List<java.lang.String> appTagPackages, kotlin.jvm.functions.Function0<kotlin.Unit> block);
115    method public void record(String fileLabel, kotlin.jvm.functions.Function0<kotlin.Unit> block);
116  }
117
118}
119
120