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