t型布局网站实例,兰州建设一个网站多少钱,小伙做网色网站,阿里巴巴网页版入口1、前言
构建性能对于生产力至关重要。 随着项目越来越复杂#xff0c;花费在构建上的时间就越长#xff0c;开发效率就越低。 通过分析构建过程#xff0c;可以了解项目构建的时间都花在哪#xff0c;以及项目存在哪些潜在的问题#xff0c;找到构建瓶颈#xff0c;解…1、前言
构建性能对于生产力至关重要。 随着项目越来越复杂花费在构建上的时间就越长开发效率就越低。 通过分析构建过程可以了解项目构建的时间都花在哪以及项目存在哪些潜在的问题找到构建瓶颈解决问题提升构建性能和开发幸福感。 所以本文先从准确找到问题开始介绍几个构建分析的工具
Build AnalyzerProfileBuild Scan
2、Build Analyzer
Build Analyzer是Android Studio提供的构建分析器可以在build窗口中打开查看。
2.1、Overview
构建后首次打开会展示本次构建的概览数据 包括构建总时长、建议等。 为确保数据准确有效建议先执行clean。 2.2、Tasks 我们切到Tasks选项可以看到每个Task的执行时间和占比单击某个Task可以看到更多具体信息。
2.3、Warnings 切到Warnings选项可以查看警告比如这里提示没有使用「配置缓存」。 除此之外还会检查你有没有开启「增量构建」「增量注解」是否有必要开启「android.enableJetifiertrue」等。
2.4、Downloads 切到Downloads选项可以查看下载信息有些下载很慢的话可以添加一下镜像啊或者调整一下仓库地址顺序啊还有就是动态版本每次都要下载是不是可以考虑优化一下啊等等非常有帮助。
3、Profile
Profile是Gradle提供的构建检测工具通过命令行执行--profile可以在本地生产一份HTML报告。 比如
./gradlew assembleDebug --profile输出
➜ GradleX git:(master) ✗ ./gradlew assembleDebug --profileBUILD SUCCESSFUL in 3s
34 actionable tasks: 34 executedSee the profiling report at: file:///Users/yechao/AndroidStudioProjects/GradleX/build/reports/profile/profile-2023-09-24-15-50-21.html可以直接在控制台打开这个file链接也可以在root build reports profile文件夹中找到。
3.1、Summary
默认是概览界面包括Total Build Time、Configuring Projects、Task Execution等基本信息。
3.2、Configuaration
Configuaration就是配置阶段耗时包括All projects、app以及其它模块的配置时间。
3.3、Dependency Resolution
这个顾名思义就是依赖解析耗时。
3.4、Artifact Transforms
Gradle在新版本报告中还加入了Transform耗时比如做些产物转换啊啥的我暂时没有这种操作所以是0s。
3.5、Task Execution
这里就是各个Task的执行时长。 有同学看这里就觉得奇怪了Total Build Time才3s呢这个Task Execution怎么就4s了 这是因为这里统计的是Task执行的总时长实际编译过程中Task是并行在跑的所以会出现大于总时长的情况。
4、Build Scan
Build Scan也是Gradle提供的构建分析工具相比于Profile方式Build Scan提供的信息更加丰富且是在线报告而且还可以用来排查编译错误。 使用非常简单命令加上--scan即可
./gradlew build --scan如果你是首次构建报告上传Gradle服务器需要同意相关条款yes即可
Publishing a build scan to scans.gradle.com requires accepting the Gradle Terms of Service defined at https://gradle.com/terms-of-service.
Do you accept these terms? [yes, no] 执行完毕会随机生成一个链接
Gradle Terms of Service accepted.Publishing build scan...
https://gradle.com/s/bv5a4lsy47vni用浏览器打开这个链接。
如果你是首次使用Build Scan还需要输入邮箱激活一下。 然后在邮箱打开Gradle的邮件。 点击链接即可查看我们的构建分析报告了。激活后就可以直接在控制台点开链接查看报告了。 链接贴这里大家也可以查看。
4.1、Summary 这个概览信息就比Profile详细多了其中包括你的Gradle版本、total build time、projects、构建配置的开关、编译的环境等等。 所谓信息越多决策就越正确对你分析构建也就越有帮助。
4.2、Performance
我们可以点击左边菜单查看更多的具体信息比如查看性能Performance。 这里可以看到Performance的二级菜单要比Profile更丰富一些除了Build、Configuration、Dependency resolution、Task execution这四项外还有Build Cache、Daemon、Network activity。
4.3、Task execution
编译的主要耗时是Task所以我们先来看看Task execetion。 这里除了展示所有Task的执行时间之外还展示了有多少个Task是命中缓存的有多少个Task是增量编译的等等。 在下面我们还可以点击某个具体的Task去看。
4.4、Timeline 在Timeline里我们可以看到所有Task执行的时间线。 点击具体的Task可以看到执行的具体信息点击「Focus on task in timeline」可以看到该Task在整个时间线的具体位置。
4.5、switches switches里面会展示一些Gradle配置的开关状态可以很好的帮助你查漏补缺。 比如我这里Cache都没开并行编译也没开离线也没开如果这些都开了构建性能又会有大大的提升。
5、最后
本文依次介绍了Build Analyzer、Profile、Build Scan通过这些构建分析工具我们可以更好的去分析项目的构建过程从而提升构建性能。
Build Analyzer开发工具提供不割裂但是分析能力相对基础不过一般也够用了推荐Profile本地分析报告分析能力相对基础Build Scan在线分析报告分析能力较强可以进行深入的分析推荐
其实Gradle还提供了Enterprice比Build Scan的分析能力还要强但是属于付费的不是很符合现在降本增效的主题。 以上是Build Scan免费版和付费版的对比大家感兴趣的话可以自行去官网了解。
写作不易感谢支持~
6、GitHub
https://github.com/yechaoa/GradleX
7、相关文档
Profile your buildInspecting Gradle BuildsBuild Analyzerhttps://scans.gradle.com/