Add basic benchmarks for Duckduckgo Android application
^KT-49921 In Progress
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
|||||||
|
// Android application written in Kotlin:
|
||||||
|
// - kind of big codebase
|
||||||
|
// - uses Kotlin compiler plugins and kapt
|
||||||
|
|
||||||
|
@file:BenchmarkProject(
|
||||||
|
name = "duckduckgo",
|
||||||
|
gitUrl = "https://github.com/duckduckgo/Android.git",
|
||||||
|
gitCommitSha = "659bd5aaac1fba922a6df9053daa2b7bcd610375"
|
||||||
|
)
|
||||||
|
|
||||||
|
runAllBenchmarks(
|
||||||
|
suite {
|
||||||
|
scenario {
|
||||||
|
title = "Clean build"
|
||||||
|
warmups = 3
|
||||||
|
iterations = 7
|
||||||
|
useGradleArgs("--no-build-cache")
|
||||||
|
|
||||||
|
runTasks("assembleDebug")
|
||||||
|
runCleanupTasks("clean")
|
||||||
|
}
|
||||||
|
|
||||||
|
scenario {
|
||||||
|
title = "Incremental build with ABI change"
|
||||||
|
warmups = 3
|
||||||
|
iterations = 7
|
||||||
|
useGradleArgs("--no-build-cache")
|
||||||
|
|
||||||
|
runTasks("assembleDebug")
|
||||||
|
applyAbiChangeTo("common/src/main/java/com/duckduckgo/app/global/ViewModelFactory.kt")
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mapOf(
|
||||||
|
"1.6.10" to "benchmarkScripts/files/duckduckgo-kotlin-1.6.10.patch",
|
||||||
|
"1.6.20" to "benchmarkScripts/files/duckduckgo-kotlin-current.patch"
|
||||||
|
)
|
||||||
|
)
|
||||||
+57
@@ -0,0 +1,57 @@
|
|||||||
|
diff --git a/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt b/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt
|
||||||
|
index 221e9837..d5b38082 100644
|
||||||
|
--- a/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt
|
||||||
|
+++ b/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt
|
||||||
|
@@ -19,6 +19,7 @@ package com.duckduckgo.app.tabs.model
|
||||||
|
import androidx.lifecycle.LiveData
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import com.duckduckgo.app.global.model.Site
|
||||||
|
+import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
import kotlinx.coroutines.flow.SharedFlow
|
||||||
|
|
||||||
|
@@ -36,6 +37,7 @@ interface TabRepository {
|
||||||
|
/**
|
||||||
|
* @return the tabs that are marked as "deletable" in the DB
|
||||||
|
*/
|
||||||
|
+ @ExperimentalCoroutinesApi
|
||||||
|
val flowDeletableTabs: Flow<List<TabEntity>>
|
||||||
|
|
||||||
|
val liveSelectedTab: LiveData<TabEntity>
|
||||||
|
diff --git a/build.gradle b/build.gradle
|
||||||
|
index 4497fd12..c3f5b97c 100644
|
||||||
|
--- a/build.gradle
|
||||||
|
+++ b/build.gradle
|
||||||
|
@@ -2,10 +2,10 @@
|
||||||
|
buildscript {
|
||||||
|
|
||||||
|
ext {
|
||||||
|
- kotlin_version = '1.5.10'
|
||||||
|
+ kotlin_version = '1.6.10'
|
||||||
|
}
|
||||||
|
ext.spotless = "5.14.0"
|
||||||
|
- ext.anvil_version = "2.3.3"
|
||||||
|
+ ext.anvil_version = "2.3.10-1-6-0"
|
||||||
|
|
||||||
|
ext.gradle_plugin = "7.0.3"
|
||||||
|
|
||||||
|
@@ -41,4 +41,4 @@ allprojects {
|
||||||
|
|
||||||
|
task clean(type: Delete) {
|
||||||
|
delete rootProject.buildDir
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/versions.properties b/versions.properties
|
||||||
|
index fae6ae6e..6debdaa6 100644
|
||||||
|
--- a/versions.properties
|
||||||
|
+++ b/versions.properties
|
||||||
|
@@ -73,7 +73,7 @@ version.io.reactivex.rxjava2..rxandroid=2.0.2
|
||||||
|
|
||||||
|
version.io.reactivex.rxjava2..rxjava=2.2.9
|
||||||
|
|
||||||
|
-version.kotlin=1.5.31
|
||||||
|
+version.kotlin=1.6.10
|
||||||
|
|
||||||
|
version.kotlinx.coroutines=1.5.2
|
||||||
|
|
||||||
+73
@@ -0,0 +1,73 @@
|
|||||||
|
diff --git a/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt b/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt
|
||||||
|
index 221e9837..d5b38082 100644
|
||||||
|
--- a/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt
|
||||||
|
+++ b/app/src/main/java/com/duckduckgo/app/tabs/model/TabRepository.kt
|
||||||
|
@@ -19,6 +19,7 @@ package com.duckduckgo.app.tabs.model
|
||||||
|
import androidx.lifecycle.LiveData
|
||||||
|
import androidx.lifecycle.MutableLiveData
|
||||||
|
import com.duckduckgo.app.global.model.Site
|
||||||
|
+import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
import kotlinx.coroutines.flow.Flow
|
||||||
|
import kotlinx.coroutines.flow.SharedFlow
|
||||||
|
|
||||||
|
@@ -36,6 +37,7 @@ interface TabRepository {
|
||||||
|
/**
|
||||||
|
* @return the tabs that are marked as "deletable" in the DB
|
||||||
|
*/
|
||||||
|
+ @ExperimentalCoroutinesApi
|
||||||
|
val flowDeletableTabs: Flow<List<TabEntity>>
|
||||||
|
|
||||||
|
val liveSelectedTab: LiveData<TabEntity>
|
||||||
|
diff --git a/build.gradle b/build.gradle
|
||||||
|
index 4497fd12..730df20a 100644
|
||||||
|
--- a/build.gradle
|
||||||
|
+++ b/build.gradle
|
||||||
|
@@ -2,10 +2,10 @@
|
||||||
|
buildscript {
|
||||||
|
|
||||||
|
ext {
|
||||||
|
- kotlin_version = '1.5.10'
|
||||||
|
+ kotlin_version = '1.6.255-SNAPSHOT'
|
||||||
|
}
|
||||||
|
ext.spotless = "5.14.0"
|
||||||
|
- ext.anvil_version = "2.3.3"
|
||||||
|
+ ext.anvil_version = "2.3.10-1-6-0"
|
||||||
|
|
||||||
|
ext.gradle_plugin = "7.0.3"
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@ buildscript {
|
||||||
|
ext.tools_build_version = "30.0.3"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
+ mavenLocal()
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
@@ -31,6 +32,7 @@ buildscript {
|
||||||
|
|
||||||
|
allprojects {
|
||||||
|
repositories {
|
||||||
|
+ mavenLocal()
|
||||||
|
google()
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
@@ -41,4 +43,4 @@ allprojects {
|
||||||
|
|
||||||
|
task clean(type: Delete) {
|
||||||
|
delete rootProject.buildDir
|
||||||
|
-}
|
||||||
|
\ No newline at end of file
|
||||||
|
+}
|
||||||
|
diff --git a/versions.properties b/versions.properties
|
||||||
|
index fae6ae6e..81cb692c 100644
|
||||||
|
--- a/versions.properties
|
||||||
|
+++ b/versions.properties
|
||||||
|
@@ -73,7 +73,7 @@ version.io.reactivex.rxjava2..rxandroid=2.0.2
|
||||||
|
|
||||||
|
version.io.reactivex.rxjava2..rxjava=2.2.9
|
||||||
|
|
||||||
|
-version.kotlin=1.5.31
|
||||||
|
+version.kotlin=1.6.255-SNAPSHOT
|
||||||
|
|
||||||
|
version.kotlinx.coroutines=1.5.2
|
||||||
|
|
||||||
@@ -68,3 +68,9 @@ fun addBenchmarkTask(
|
|||||||
argumentProviders.add(scriptArgs)
|
argumentProviders.add(scriptArgs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addBenchmarkTask(
|
||||||
|
taskName = "benchmarkRegressionDuckduckgo",
|
||||||
|
script = "duckduckgo.benchmark.kts",
|
||||||
|
JavaLanguageVersion.of(11)
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user