Profile your Gradle builds, run configuration health checks, get actionable optimization recommendations, and integrate with Gradle Build Scans.
Build Performance provides build profiling and Gradle configuration health checks to help you identify slow tasks and optimize your Android build pipeline. It turns opaque Gradle internals into actionable data — showing exactly which tasks consume the most time, whether your configuration is optimal, and what changes will yield the biggest speed improvements.
Rather than guessing why builds are slow or blindly copying optimization tips from blog posts, you get precise, project-specific measurements. Build Performance combines task-level timing breakdowns, configuration health checks, and prioritized optimization recommendations into a single view so you can make informed decisions about where to invest your effort.
For teams that want even deeper analysis, Build Performance integrates with Gradle Build Scans to provide timeline views, network activity, plugin performance, and dependency resolution details directly from the Gradle Enterprise dashboard.
Slow builds are one of the biggest productivity drains in Android development, and the problem often goes unnoticed until it becomes severe:
gradle.properties can be dramatic../gradlew assembleDebug tells you the total wall-clock time, but not which tasks are the bottleneck. Without a breakdown, you cannot tell if compilation, resource merging, or dex conversion is the culprit.Run any Gradle build with profiling enabled and get a detailed breakdown of how long each task took. The profiler captures execution times for every task in the build lifecycle — from :app:preBuild through :app:assembleRelease — and displays them in a sortable table with percentage-of-total indicators. Tasks are color-coded by duration: green for fast, yellow for moderate, and red for slow. Sort by duration to instantly identify bottlenecks like annotation processing, resource merging, or Dex merging.
Build Performance inspects your Gradle setup and reports on configuration options that significantly impact build speed. Each check produces a clear status with a recommendation:
org.gradle.parallel=true set in gradle.properties? Parallel execution runs independent module tasks concurrently.org.gradle.caching=true enabled? The build cache reuses outputs from previous builds, including across machines with a remote cache.org.gradle.jvmargs configured with adequate heap size? An under-provisioned JVM causes GC pauses during compilation.Based on profiling results and health checks, Build Performance generates a prioritized list of recommendations. Each recommendation includes an estimated time savings, the effort required to implement it, and a link to relevant documentation. Recommendations are ranked by impact-to-effort ratio so you can pick the quick wins first. Common recommendations include enabling parallel builds, configuring the build cache, splitting large modules, and disabling unused annotation processors.
Run the same build task twice and Build Performance compares the two runs. The analysis shows which tasks were UP-TO-DATE, FROM-CACHE, or re-executed — and for re-executed tasks, it explains why (input changed, output removed, dependency changed). This is critical for understanding why your "incremental" build is doing more work than expected and how to structure your project for better caching behavior.
For deeper analysis, Build Performance can trigger a Gradle Build Scan by appending --scan to your build command. When the scan completes, ADB Pro extracts the scan URL and displays it in the panel with a direct link to the Gradle Enterprise dashboard.
| Check | Status | Impact | Recommendation |
|---|---|---|---|
| Gradle Daemon | Running | High | No action needed |
| Parallel Builds | Disabled | High | Add org.gradle.parallel=true to gradle.properties |
| Build Cache | Enabled | High | No action needed |
| Configuration Cache | Disabled | Medium | Enable with org.gradle.configuration-cache=true |
| JVM Heap | 2 GB | Medium | Consider increasing to 4 GB for large projects |
| Kotlin Incremental | Enabled | High | No action needed |
Build Performance is accessible from multiple entry points:
To profile a build:
assembleDebug, assembleRelease).To configure defaults, go to Settings > Tools > ADB Pro > Build Performance. Here you can set the default build task for profiling, the slow task threshold (duration at which tasks are highlighted in red), automatic health check on project open, Build Scan auto-upload behavior, and profile history retention (default: 20 sessions).
After running profiling and health checks, confirm the results are actionable:
org.gradle.parallel=true to gradle.properties).