首页 > 解决方案 > 减少 Benchmark android 中的重复测量值

问题描述

默认,

benchmarkRule.measureRepeated {

进行 50 次热身测试。有什么办法可以将运行次数减少到 10 次之类的吗?

发现我们可以配置检测参数

testInstrumentationRunnerArgument 'androidx.benchmark.startupMode.enable' , 'true'

捕获 10 个测量值。

但这不想使用“measureRepeated”,
我们得到:

java.lang.AssertionError: Error - 启动模式下的多个基准测试。每个“am instrument”调用只能运行一个基准测试,以确保结果隔离。

关于如何提前进行的任何想法?

标签: androidperformancebenchmarkingandroid-jetpack

解决方案


我发现他们可以减少计数:

    @Before
    fun init() {
        val field = androidx.benchmark.BenchmarkState::class.java.getDeclaredField("REPEAT_COUNT")
        field.isAccessible = true
        field.set(benchmarkRule, 1)
    }

其中 1 是重复计数的数量。

但你需要小心——这会极大地影响图书馆的稳定工作


推荐阅读