Recent experiments

JDK 26 with UseCompactObjectHeaders

The performance comparison between varianta_main and variantb_UseCompactObjectHeaders reveals minor differences in build and configuration times, with variantb_UseCompactObjectHeaders showing a slight improvement in build time by approximately 0.28% (around 1.8 seconds faster). The configuration time is nearly identical between the two variants. Notably, the top three most time-consuming tasks across both variants include :app:app:mergeExtDexDebug, :app:app:hiltJavaCompileDebug, and :app:app:compileDebugKotlin, with :app:app:mergeExtDexDebug being the longest at over 18 seconds for both variants. CPU and memory usage are almost identical, with maximum values reaching up to 100% CPU and around 13.87 GB of memory for all processes. The total garbage collection counts are slightly lower in variantb_UseCompactObjectHeaders, suggesting marginally better memory management.

Gradle 9.6.0-rc-1 vs 9.5.1

The analysis of the Gradle build performance data between two variants, varianta_9.5.1 and variantb_9.6.0-rc-1, reveals several key insights. The overall build time has decreased from 516.886 seconds in varianta_9.5.1 to 499.350 seconds in variantb_9.6.0-rc-1, marking a 3.4% improvement. Configuration time also saw a reduction, decreasing by about 5.1%. The most time-consuming tasks across both variants include :app:app:mergeExtDexDebug, :app:app:hiltJavaCompileDebug, and :app:app:compileDebugKotlin, with variantb_9.6.0-rc-1 generally showing better performance in these areas. CPU and memory usage metrics indicate that both variants are pushing the limits with 100% CPU usage observed at peak times. Memory usage peaked at 10.34 GB in variantb_9.6.0-rc-1 compared to 10.09 GB in varianta_9.5.1. The garbage collection logs show a slight decrease in total collections from 197 in varianta_9.5.1 to 196 in variantb_9.6.0-rc-1.

Kotlin 2.3.21 vs 2.3.20

The performance comparison between varianta_baseline and variantb_kotlin-2.3.21 reveals several key differences. The overall build time for variantb_kotlin-2.3.21 is slightly higher, with a mean increase of about 4.4 seconds (1.66% longer). Notably, the configuration time has improved in variantb_kotlin-2.3.21 by approximately 1.8 seconds (4.4% faster). In task-specific performance, the :core:cart:compileDebugKotlin task showed a significant increase in execution time in variantb_kotlin-2.3.21, taking about 5.6 seconds longer on average, which is a 65% increase. Memory usage also saw a slight increase in variantb_kotlin-2.3.21 across all metrics, with a notable increase in build child processes memory by 0.46 GB (14.5% higher).

AGP 9.2.1 vs 9.2.0

The analysis of the Gradle build performance data between varianta_baseline and variantb_agp-9.2.1 reveals several key insights. The overall build time for variantb_agp-9.2.1 increased slightly by about 2.77 seconds (1.07%) compared to varianta_baseline. Configuration times also saw a notable increase in variantb_agp-9.2.1 by about 6.54 seconds (16.39%). Among the most time-consuming tasks, :core:cart:compileDebugKotlin and :build-logic:convention:compileKotlin exhibited the most significant increases in execution times. CPU and memory usage across all processes remained at their maximum capacity for both variants, indicating a high level of resource utilization during the builds.

Gradle 9.5.1 vs 9.5.0

The analysis of the Gradle build performance data reveals that the transition from varianta_baseline to variantb_gradle-9.5.1 has led to a slight reduction in overall build time by approximately 9.5 seconds (3.57%). However, the configuration time has increased slightly by about 1.046 seconds (2.69%). Notably, the task :app:app:parseDebugLocalResources showed a significant reduction in execution time, decreasing by about 0.642 seconds (31.41%). Memory usage for all processes decreased from 8.61 GB to 8.31 GB, a reduction of about 3.48%. CPU usage remained maximally utilized at 100% for all processes in both variants.

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.