Recent experiments

AGP 9.2.0 vs 9.1.0

The analysis of the Gradle build performance data reveals notable improvements in build times and resource utilization between the two variants, varianta_9.1.0 and variantb_9.2.0. The overall build time decreased by 4.45% from an average of 588.322 seconds in varianta_9.1.0 to 562.176 seconds in variantb_9.2.0. Configuration times also saw a slight improvement. The most time-consuming tasks such as :app:app:mergeExtDexDebug and :core:analytics:kspDebugKotlin showed significant reductions in execution times, contributing to the overall efficiency. Memory usage and CPU utilization during the build process were slightly better in variantb_9.2.0. Furthermore, Kotlin Build Reports indicate an increase in code generation lines per second, suggesting enhanced compiler performance in the newer variant.

Gradle 9.5.0 vs 9.4.1

The analysis of the Gradle build performance data reveals a slight increase in build time in variantb_9.5.0 compared to varianta_9.4.1, with the mean build time increasing by approximately 11.4 seconds (2%). The configuration time also saw an increase, with the mean time rising by about 2 seconds (3.2%). Notably, the most time-consuming tasks across both variants include ‘KotlinCompile’, ‘KspAATask’, and ‘LinkApplicationAndroidResourcesTask’, with minor increases in execution times in variantb_9.5.0. In terms of resource usage, both CPU and memory usage for all processes and specifically for the build processes show very close figures between the two variants, with no significant deviations. The total garbage collection (GC) counts are nearly identical, indicating stable memory management across builds.

Gradle 9.4.1 vs 9.5.0-rc-1

The performance comparison between varianta_main and variantb_9.5.0-rc-1 reveals minor differences in build times and task execution times. The overall build time for variantb_9.5.0-rc-1 is slightly higher by about 0.9% compared to varianta_main, translating to an increase of approximately 4.376 seconds. The configuration time shows a negligible decrease of about 0.7% in variantb_9.5.0-rc-1. Notably, the most time-consuming tasks across both variants are similar, with minor variations in execution times. Memory and CPU usage metrics for all processes and specifically for the build processes are closely matched between the two variants, indicating similar resource consumption. The total garbage collection counts are also comparable, suggesting efficient memory management in both scenarios.

KGP 2.3.20 vs 2.3.10

The analysis of the Gradle build performance comparison between two Kotlin variants (2.3.10 and 2.3.20) reveals minor differences in build times and task execution. The overall build time for variant B (Kotlin 2.3.20) is slightly higher by approximately 0.76 seconds (0.76% increase). Configuration times are nearly identical with a negligible difference. Notably, the most time-consuming tasks such as :app:app:mergeExtDexDebug and :app:app:hiltJavaCompileDebug show minimal variation between the two variants. In terms of CPU and memory usage, both variants reach the maximum CPU usage, but variant B uses slightly more memory (0.03 GB more for the build process). The garbage collection metrics indicate a very close number of total collections between the two variants, suggesting similar memory management efficiency.

Gradle 9.4.0 vs 9.3.1

The analysis of the Gradle build performance data between variants 9.3.1 and 9.4.0 reveals minor differences in build times and resource usage. The overall build time for variant 9.3.1 averaged 395.328 seconds, slightly longer than the 394.733 seconds for variant 9.4.0, a marginal improvement of about 0.15%. Configuration times are also nearly identical, with variant 9.3.1 being marginally slower by about 0.29%. In terms of resource usage, both CPU and memory metrics for the build processes are closely matched between the two variants, indicating no significant change in resource efficiency. The most time-consuming tasks across both variants include :app:app:mergeExtDexDebug, :app:app:hiltJavaCompileDebug, and :app:app:mergeDebugResources, with variant 9.4.0 showing slight improvements in execution times for these tasks.

Gradle 9.4.0-rc-1 vs 9.3.1

The analysis of the Gradle build performance comparison between variants 9.3.1 and 9.4.0-rc-1 reveals a slight increase in overall build time by approximately 4.6 seconds (0.9% increase). The configuration time also saw a minor increase of about 1.02 seconds (2.3% increase). Notably, the top three most time-consuming tasks across both variants were :core:cart:kspDebugKotlin, :core:contact:kspDebugKotlin, and :core:comment:kspDebugKotlin, with marginal increases in their execution times in the newer variant. Memory usage across all processes slightly decreased in the newer variant, while CPU usage remained maximally utilized at 100% for all processes. The total garbage collection counts increased in the newer variant, suggesting a potential area for optimization.

Kotlin 2.3.10 vs 2.3.0

The analysis of the Gradle build performance data reveals minor but notable differences between the two variants, varianta_2.3.0 and variantb_2.3.10. The overall build time for varianta_2.3.0 is slightly higher with an average of 514.136 seconds compared to 511.726 seconds for variantb_2.3.10, a difference of about 0.47%. Configuration times also show a slight improvement in variantb_2.3.10 with an average time of 46.028 seconds versus 47.689 seconds for varianta_2.3.0, marking a 3.48% decrease. Task execution times across various types and paths show mixed results with minor variations, indicating specific areas where performance tuning affects outcomes. Memory and CPU usage metrics are closely matched between the variants, with no significant differences observed in maximum values.

Gradle 9.2.1 vs 9.3.0

The analysis of the Gradle build performance data reveals minor differences between the two variants, varianta_9.2.1 and variantb_9.3.0. The overall build time for varianta_9.2.1 averaged 638.4 seconds, slightly faster than variantb_9.3.0 at 639.8 seconds, a difference of about 1.4 seconds. Configuration times also showed a slight increase in variantb_9.3.0 by approximately 0.9 seconds. The most time-consuming tasks across both variants include :core:account:kspDebugKotlin, :core:analytics:kspDebugKotlin, and :core:article:kspDebugKotlin, with execution times closely matched between variants. Memory and CPU usage for all processes and specifically for the build processes were nearly identical in both variants, indicating consistent resource utilization. The total garbage collection counts were also similar, with varianta_9.2.1 having 290 collections compared to 288 in variantb_9.3.0.

Nowinandroid with Metro

The analysis of the Gradle build performance data reveals that variant variantb_useMetro_false generally has longer build times compared to varianta_useMetro_true. Specifically, the mean build time for variantb_useMetro_false is approximately 15.7% longer, translating to about 18.9 seconds more. Configuration times are also slightly higher in variantb_useMetro_false by about 3.9%. Task execution times show significant variability, with some tasks like com.google.devtools.ksp.gradle.KspAATask showing drastic differences (over 75% faster in varianta_useMetro_true). Memory usage is slightly higher in variantb_useMetro_false across all processes, with the build process memory usage notably about 18% higher. The total garbage collection (GC) counts are also higher in variantb_useMetro_false for both Gradle and Kotlin processes, indicating potentially less efficient memory management.

Kotlin 2.3.0

The analysis of the Gradle build performance data between two variants, varianta_2.2.21 and variantb_2.3.0, reveals subtle differences in build times and task execution. The overall build time for varianta_2.2.21 averaged 569.213 seconds, slightly longer than variantb_2.3.0 at 567.616 seconds, a marginal improvement of about 0.28%. Configuration times also saw a decrease from 54.823 seconds in varianta_2.2.21 to 52.565 seconds in variantb_2.3.0, improving by approximately 4.12%. Notably, the most time-consuming tasks across both variants include :core:account:kspDebugKotlin, :core:analytics:kspDebugKotlin, and :core:alarm:compileDebugKotlin, with minor variations in execution times between the variants. The garbage collection metrics indicate a slight increase in total collections for variantb_2.3.0, suggesting a minor increase in memory management activities.