Skip to content

Commit 673d368

Browse files
committed
Reduce population size to 10k to avoid ftl timeouts
1 parent 397fd8f commit 673d368

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

engine/benchmarks/app/src/main/java/com/google/android/fhir/engine/benchmarks/app/SearchApiViewModel.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import org.hl7.fhir.r4.model.DecimalType
4949
import org.hl7.fhir.r4.model.Encounter
5050
import org.hl7.fhir.r4.model.HumanName
5151
import org.hl7.fhir.r4.model.Observation
52+
import org.hl7.fhir.r4.model.Organization
5253
import org.hl7.fhir.r4.model.Patient
5354
import org.hl7.fhir.r4.model.Practitioner
5455
import org.hl7.fhir.r4.model.Quantity
@@ -72,6 +73,8 @@ internal class SearchApiViewModel(
7273
init {
7374
viewModelScope.launch(benchmarkingViewModelWorkDispatcher) {
7475
_benchmarkProgressMutableStateFlow.update { true }
76+
preLoadData()
77+
7578
traceSearchString()
7679
traceSearchNumber()
7780
traceSearchDate()
@@ -85,19 +88,30 @@ internal class SearchApiViewModel(
8588
traceSearchWithPatientGivenNamesDisjunct()
8689
traceSearchEncounterLocalLastUpdated()
8790
traceSearchPatientWithRevIncludeCondition()
91+
8892
_benchmarkProgressMutableStateFlow.update { false }
8993
}
9094
}
9195

92-
private suspend fun loadData() {
96+
private suspend fun preLoadData() {
9397
withContext(currentCoroutineContext()) {
9498
fhirEngine.clearDatabase()
9599
resourcesDataProvider.collectResources { fhirEngine.create(*it.toTypedArray()) }
96100
}
97101
}
98102

103+
private suspend fun triggerChangeInSqlitePageCache() {
104+
withContext(currentCoroutineContext()) {
105+
// Search to add sqlite pages with Organization/Practitioner to cache
106+
fhirEngine.search<Organization> { count = 1 }
107+
108+
fhirEngine.search<Practitioner> { count = 1 }
109+
}
110+
}
111+
99112
private suspend fun namedTrace(name: String, traceFunction: suspend (String) -> Duration) {
100-
loadData()
113+
triggerChangeInSqlitePageCache()
114+
101115
val duration = traceFunction.invoke(name)
102116
_searchApiUiMutableStateFlow.update { it + SearchApiUiState(name, duration) }
103117
}

engine/benchmarks/macrobenchmark/src/main/java/com/google/android/fhir/engine/macrobenchmark/FhirEngineCrudBenchmark.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
2323
import androidx.test.filters.LargeTest
2424
import androidx.test.uiautomator.By
2525
import androidx.test.uiautomator.Until
26+
import org.junit.Ignore
2627
import org.junit.Rule
2728
import org.junit.Test
2829
import org.junit.runner.RunWith
@@ -34,6 +35,7 @@ class FhirEngineCrudBenchmark {
3435

3536
@get:Rule val benchmarkRule = MacrobenchmarkRule()
3637

38+
@Ignore("Ignore temporarily")
3739
@Test
3840
fun tracingCrud() {
3941
benchmarkRule.measureRepeated(

engine/benchmarks/macrobenchmark/src/main/java/com/google/android/fhir/engine/macrobenchmark/FhirEngineSearchApiBenchmark.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class FhirEngineSearchApiBenchmark {
9090
benchmarkRule.measureRepeated(
9191
packageName = TARGET_PACKAGE,
9292
metrics = metrics,
93-
iterations = 2,
93+
iterations = 1,
9494
startupMode = null,
9595
setupBlock = { startActivityAndWait() },
9696
) {

kokoro/gcp_ubuntu/kokoro_build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ function build_only() {
101101
}
102102

103103
function setup_device_benchmarks() {
104-
./gradlew :engine:benchmark:app:generateSynthea -Ppopulation=50000 > /dev/null
104+
./gradlew :engine:benchmark:app:generateSynthea -Ppopulation=10000 > /dev/null
105105
./gradlew :engine:benchmark:app:assembleBenchmark :engine:benchmarks:macrobenchmark:assembleBenchmark
106106
}
107107

0 commit comments

Comments
 (0)