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.

[Catchup] anvil vs metro - incremental build

The analysis of the Gradle build performance data reveals a notable improvement in overall build times when comparing variant B (metro_0_3_2) to variant A (anvil). Specifically, variant B is faster by approximately 6.7 seconds (26.012s for A vs. 19.291s for B), translating to a 25.8% decrease in build time. This improvement is consistent across the 50th and 90th percentiles as well. In task execution, the :app-scaffold:compileDebugKotlin task shows a significant increase in execution time in variant B, while :app-scaffold:kspDebugKotlin is notably faster. The Kotlin build reports highlight a substantial increase in IR translation time for variant B, suggesting a potential area for optimization. Memory and CPU usage are slightly higher in variant B for all processes, with the build child processes in variant B utilizing significantly more CPU resources. Lastly, garbage collection data indicates fewer total collections in variant B, suggesting more efficient memory management.

[Catchup] anvil vs metro - clean build

The performance analysis of the two Gradle build variants, varianta_anvil and variantb_metro_0_3_2, reveals significant differences in build times and task execution. variantb_metro_0_3_2 shows a faster overall build time by approximately 22.2 seconds (14.1%) compared to varianta_anvil. Notably, the com.google.devtools.ksp.gradle.KspAATask and org.jetbrains.kotlin.gradle.tasks.KotlinCompile tasks in variantb_metro_0_3_2 are considerably slower, indicating potential areas for optimization. Memory usage is slightly lower in variantb_metro_0_3_2 across all processes, with a maximum difference of about 0.19 GB. The Kotlin Build Reports highlight variantb_metro_0_3_2 as having a higher compiler IR translation time and more intensive code analysis, suggesting more complex operations despite the overall faster build time.

CatchUp using Metro with abi scenario

The performance comparison between varianta_main and variantb_z/metro reveals that variantb_z/metro generally has a shorter build time with a mean reduction of 25.1% (6.622 seconds). Notably, variantb_z/metro also exhibits higher CPU usage in build child processes, suggesting more intensive parallel task execution. In the Kotlin Build Reports, variantb_z/metro shows a significant increase in Compiler IR translation time, which could indicate more complex translation processes. Memory usage is slightly lower in variantb_z/metro across all processes, contributing to its efficiency.

CatchUp using Metro on clean builds

The analysis of the Gradle build performance comparison data between two variants reveals notable differences in build times and task execution times. Variant B (variantb_z/metro) shows a faster overall build time with a mean reduction of 20.42 seconds (13.4% faster) compared to Variant A (varianta_main). Key tasks such as com.android.build.gradle.internal.tasks.MapSourceSetPathsTask and com.google.devtools.ksp.gradle.KspAATask also exhibit significant time reductions in Variant B. Memory usage is slightly lower in Variant B across all processes, with a maximum memory usage of 6.9 GB compared to 7.04 GB in Variant A. CPU usage is nearly identical for both variants, maxing out at 100% for all processes.