持续交付 36 讲
王潇俊
携程系统研发部总监
39682 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
开篇词 (1讲)
结束语 (1讲)
持续交付 36 讲
15
15
1.0x
00:00/00:00
登录|注册

14 | 如何做到构建的提速,再提速!

解决问题的方法
面临的性能问题
公司的构建流程
善用构建工具
规范构建流程
使用本地缓存
搭建私有仓库
升级硬件资源
思考题
构建提速方法

该思维导图由 AI 生成,仅供参考

在前面几篇文章中,我分享了很多关于构建的观点,然而天下武功唯为快不破,构建的速度对于用户持续交付的体验来说至关重要。
在实施持续交付的过程中,我们经常会遇到这样的情况:只是改了几行代码,却需要花费几分钟甚至几十分钟来构建。而这种情况,对于追求高效率的你我来说,是难以容忍的。
那么,今天我就带你一起看看,还有哪些手段可以帮助构建提速。

升级硬件资源

构建是一个非常耗时的操作,常常会成为影响持续交付速度的瓶颈。原因是,构建过程,会直接消耗计算资源,而且很多构建对硬件的要求也非常高。那么,升级硬件资源就是构建过程提速的最为直接有效的方式。
需要注意的是,这里的硬件资源包括 CPU、内存、磁盘、网络等等,具体升级哪一部分,需要具体情况具体分析。
比如,你要构建一个 C 语言程序,那么 CPU 就是关键点。你可以增加 CPU 的个数或者提升 CPU 主频以实现更快的编译速度。
再比如,你要用 Maven 构建一个 Java 应用,除了 CPU 之外,Maven 还会从中央仓库下载依赖写在本地磁盘。这时,网络和磁盘的 I/O 就可能成为瓶颈,你可以通过增加网络带宽提升网络吞吐,使用 SSD 代替机械硬盘增加磁盘 I/O ,从而到达提升整个构建过程速度的目的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

构建速度对于持续交付至关重要。本文提出了几种提速方法。首先,升级硬件资源是最为直接有效的方式,包括CPU、内存、磁盘、网络等。其次,搭建私有仓库可以提升下载速度,保护知识产权。再者,使用本地缓存可以避免重复下载,提高构建效率。最后,规范构建流程可以进一步提高构建速度,例如异步执行Enforcer检查、框架依赖检查、Sonar检查、单元测试、集成测试等步骤。这些方法可以帮助读者提升构建速度,提高持续交付效率。 在文章中,作者介绍了五种常见的构建提速的方式,包括升级硬件资源、搭建私有仓库、使用本地缓存、规范构建流程以及善用构建工具。这些方法都能有效提高构建速度,从而提高持续交付效率。此外,作者还提出了一些构建工具的使用技巧,如Maven的堆内存参数设置、跳过单元测试、并行构建等,这些技巧也能帮助提高构建速度。 总的来说,本文通过介绍各种提速方法和技巧,为读者提供了丰富的构建优化思路。无论是升级硬件资源,搭建私有仓库,还是善用构建工具,都能在不同程度上提高构建速度,为持续交付流程带来更高的效率和可靠性。文章内容丰富,实用性强,适合需要优化构建流程的技术人员参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《持续交付 36 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(11)

  • 最新
  • 精选
  • 九脉一谷
    想了解一下对于软件版本号是怎么处理的?是每次发版本的时候在pom里面修改一下配置还是通过什么其他方式来动态生成版本号

    作者回复: 不会自动生成,只是检查是否符合标准,版本号还是开发在pom自定的

    2018-08-04
    1
  • 固态U盘
    我们面临的问题就是构建速度慢,有时打包生成的构件还有问题。看了老师分享的这几点,我们的问题应该可以很好地解决了,多谢。
    2018-08-04
    4
  • 小雨
    Pip和apt都是用了清华的源,docker注册中心是用了gitlab自带的注册中心。
    2018-08-11
    2
  • qs小刚
    '比如, Sonar 扫描在代码集成阶段执行,用户在 GitLab 上发起一个合并请求(Merge Request),这时只对变更的代码进行对比 Sonar 扫描,只要变更代码检查没有问题,那么就可以保证合并之后主干分支的代码也是没问题的。' 请问这块是如何跟CI整合的?
    2018-08-11
    1
  • 怀揣梦想的学渣
    我公司优选的方案是本地构建软件仓库,后来项目多,软件版本多,涉及资源多,需要额外招人维护,综合成本考虑,公司选择了海外专线,目前公司有海外的专线网络,看拉取各种资源包速度很快。
    2023-05-05归属地:山东
  • 锡商3
    Sonar 扫描在代码集成阶段执行,用户在 GitLab 上发起一个合并请求(Merge Request),这时只对变更的代码进行对比 Sonar 扫描,只要变更代码检查没有问题,那么就可以保证合并之后主干分支的代码也是没问题的,怎么实施呢
    2022-08-26归属地:江苏
  • 眼睛
    本地缓存依赖库,增量方式,最后runner提示磁盘空间不足
    2021-12-07
  • 张振宇
    请问如何检测依赖包中是否存在Snapshot版本
    2020-03-16
  • booboosui
    老师您好,在提速的实践中有遇到哪些坑可以分享一下吗?
    2019-11-21
  • 羽绒棉
    有没有了解过google的bazel?
    2018-08-08
收起评论
显示
设置
留言
11
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部