Home Features Getting Started Pricing Dictionaries Feedback
Pro Feature

Build Performance

Profile your Gradle builds, run configuration health checks, get actionable optimization recommendations, and integrate with Gradle Build Scans.

Introduction

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.


Why Use Build Performance?

Slow builds are one of the biggest productivity drains in Android development, and the problem often goes unnoticed until it becomes severe:


Features

Task-Level Profiling

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.

Configuration Health Checks

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:

Optimization Recommendations

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.

Incremental Build Analysis

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.

Build Scan Integration

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.

Profiling Output Example

Build Performance — task profiling results
Build: assembleRelease  |  Total: 2m 34s
Tasks: 147 executed, 23 up-to-date, 12 from-cache

Top 10 slowest tasks:
 1. :app:compileReleaseKotlin         42.3s  (27.5%)
 2. :app:mergeReleaseResources       28.1s  (18.2%)
 3. :app:kaptReleaseKotlin          19.7s  (12.8%)
 4. :app:mergeDexRelease           15.2s   (9.9%)
 5. :app:lintVitalAnalyzeRelease    12.8s   (8.3%)
 6. :app:processReleaseManifest     6.4s   (4.2%)
 7. :app:compileReleaseJava         5.9s   (3.8%)
 8. :app:packageRelease             4.2s   (2.7%)
 9. :app:stripReleaseDebugSymbols   3.8s   (2.5%)
10. :app:shrinkReleaseRes          3.1s   (2.0%)

Configuration Health Report

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

Getting Started

Build Performance is accessible from multiple entry points:

To profile a build:

  1. Select Tools > ADB Pro > Profile Build.
  2. Choose the build task to profile (e.g., assembleDebug, assembleRelease).
  3. ADB Pro runs the build with timing instrumentation and displays the results in the Build Performance panel.
  4. Review the task-level breakdown. Sort by duration to find the slowest tasks.
  5. Run a health check from Tools > ADB Pro > Run Health Check to see configuration flags that may be contributing to slow builds.
  6. Address the recommendations one by one, starting with the highest-impact, lowest-effort items.

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).


Verification

After running profiling and health checks, confirm the results are actionable:


References

Speed Up Your Builds

Install ADB Pro and turn build optimization from guesswork into a science.

Get ADB Pro