Skip to content

Instantly share code, notes, and snippets.

@remcomokveld
Created October 14, 2024 09:05
Show Gist options
  • Save remcomokveld/0f4b681a51df37810636f83c92d9ac03 to your computer and use it in GitHub Desktop.
Save remcomokveld/0f4b681a51df37810636f83c92d9ac03 to your computer and use it in GitHub Desktop.
package com.example.benchmark
import androidx.benchmark.junit4.BenchmarkRule
import androidx.benchmark.junit4.measureRepeated
import androidx.test.ext.junit.runners.AndroidJUnit4
import dagger.internal.DoubleCheck
import dagger.internal.Provider
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class ExampleBenchmark {
@get:Rule
val benchmarkRule = BenchmarkRule()
@Test
fun notScoped() {
benchmarkRule.measureRepeated {
val dependency = Provider { Dependency() }
Provider { Dependent(dependency.get()) }.get()
}
}
@Test
fun scoped() {
benchmarkRule.measureRepeated {
val dependency = DoubleCheck.provider(Provider { Dependency() })
DoubleCheck.provider(Provider { Dependent(dependency.get()) }).get()
}
}
class Dependency
class Dependent(val dependency: Dependency)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment