使用gradle-profiler是定位gradle构建慢最可靠方式之一,支持多轮基准测试、排除冷启动干扰、生成html/json报告,并可对比不同配置影响,需注意clean、关闭ide同步、关注平均时间与标准差。

直接用 gradle-profiler 做基准测试,是定位 Gradle 构建慢的最可靠方式之一。它能多次运行构建、排除冷启动干扰、生成对比数据,比单次 profile 更有说服力。
安装与初始化
推荐在 macOS 或 Linux 下使用(Windows 需额外配置子系统或 SDKMAN):
- macOS:执行
brew install gradle-profiler - 项目根目录下运行命令即可自动识别 Gradle 版本和 wrapper,无需手动指定
- 首次运行会自动下载对应 Gradle 分发包,同时创建
profile-out输出目录
执行基准测试
例如对 debug 包做 10 次构建并取平均值:
gradle-profiler --benchmark --project-dir . assembleDebug-
--benchmark表示启用多轮构建(默认 warm-ups: 6,builds: 10) - 结果输出在
profile-out/下,含 HTML 报告和 JSON 原始数据 - 报告中可清晰看到各阶段耗时分布:Configuration、Task Execution、Dependency Resolution 等
对比不同配置的影响
想验证某项优化是否真有效?用 --benchmark 加上参数对比:
- 对比开启缓存前后:
gradle-profiler --benchmark -Dorg.gradle.caching=true assembleDebugvs-Dorg.gradle.caching=false - 对比并行开关:
-Dorg.gradle.parallel=true和false - 支持多场景定义,写成
profile.gradle脚本统一管理
关键注意事项
避免误判,注意几个实操细节:
- 每次测试前建议先
./gradlew clean,清除上一次构建残留 - 关闭 IDE 同步和其它后台构建任务,防止资源抢占
- 不要只看单次耗时,重点关注「平均构建时间」和「标准差」——波动大说明不稳定,可能受 GC 或磁盘 IO 影响
- Android 项目慎用
--offline,否则依赖解析失败会导致结果失真











