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