Report 📊

Summary

The analysis of the Gradle build performance data reveals a slight increase in overall build time when comparing variant B (AGP 8.10.1) to variant A. Specifically, the mean build time for variant B is approximately 0.61 seconds longer than variant A, representing a 0.6% increase. The P90 build times show a more pronounced difference, with variant B taking about 6.24 seconds longer than variant A, a 2.7% increase. In task execution, the most significant time differences are observed in tasks like :app:transformDemoDebugClassesWithAsm and :app:jacocoDemoDebug, where variant B shows increased execution times. Memory and CPU usage across all processes and specifically for the build processes are relatively stable with minor fluctuations. The total garbage collection (GC) counts are slightly higher in variant B for both Gradle and Kotlin processes, indicating a marginal increase in memory management activities.

Detailed Report

1. Build Time Comparison

  • Mean Build Time:
    • Variant A: 222.202 seconds
    • Variant B: 223.560 seconds
    • Difference: +1.358 seconds (+0.61%)
  • P50 Build Time:
    • Variant A: 221.895 seconds
    • Variant B: 222.718 seconds
    • Difference: +0.823 seconds (+0.37%)
  • P90 Build Time:
    • Variant A: 230.241 seconds
    • Variant B: 236.482 seconds
    • Difference: +6.241 seconds (+2.71%)

2. Task Type Differences

  • Top 3 Time-Consuming Tasks:
    • "org.jetbrains.kotlin.gradle.tasks.KotlinCompile":
      • Variant A Mean: 4.101 seconds, P50: 2.909 seconds, P90: 10.772 seconds
      • Variant B Mean: 4.149 seconds, P50: 2.969 seconds, P90: 10.888 seconds
    • "com.google.devtools.ksp.gradle.KspTaskJvm":
      • Variant A Mean: 3.929 seconds, P50: 3.287 seconds, P90: 6.601 seconds
      • Variant B Mean: 3.945 seconds, P50: 3.335 seconds, P90: 6.507 seconds
    • "com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask":
      • Variant A Mean: 1.514 seconds, P50: 1.506 seconds, P90: 2.184 seconds
      • Variant B Mean: 1.496 seconds, P50: 1.474 seconds, P90: 2.125 seconds

3. Statistical Patterns

  • Significant timing variations are observed in tasks like "com.android.build.gradle.internal.tasks.JacocoTask" and "com.android.build.gradle.internal.tasks.DexMergingTask", with variant B showing increased execution times in the P90 percentile.

4. Process State Analysis

  • Kotlin Process State:
    • Slight increase in GC time for Kotlin processes in variant B.
  • Gradle Process State:
    • Gradle process GC times remain consistent across both variants.

5. CPU & Memory Usage Analysis

  • All Processes:
    • CPU: Max 100% for both variants.
    • Memory: Max 10.75 GB for variant A and 10.73 GB for variant B.
  • Build Process:
    • CPU: Max 93.62% for variant A and 93.92% for variant B.
    • Memory: Max 5.41 GB for variant A and 5.37 GB for variant B.
  • Build Child Processes:
    • CPU: Max 92.88% for variant A and 92.78% for variant B.
    • Memory: Max 4.57 GB for variant A and 4.55 GB for variant B.

6. Garbage Collection Analysis

  • Total GC Collections:
    • Gradle: 70 for variant A and 71 for variant B.
    • Kotlin: 51 for variant A and 52 for variant B.

This detailed analysis highlights the subtle differences in build performance between the two variants, with variant B showing a slight increase in build time and GC activity.