写点什么

从分钟到秒:抖音如何通过动态库优化实现高效构建 |QCon 北京

  • 2025-04-07
    北京
  • 本文字数:1309 字

    阅读完需:约 4 分钟

大小:691.92K时长:03:56
从分钟到秒:抖音如何通过动态库优化实现高效构建 |QCon北京

2025 年 4 月 10 - 12 日,QCon 全球软件开发大会将汇聚全球 140+ 技术先行者及创新实践者,直击行业痛点,解锁可复制的经验与模式。这不仅是一场会议,更是一次对技术演进的集体探索。无论你是资深开发者,还是技术管理者,都能在这里有所收获,为下一步的技术决策提供方向。


字节跳动软件工程师张星宇已确认出席并发表题为《从分钟到秒:抖音如何通过动态库优化实现高效构建》的主题分享。日常开发中的任何一次改动,都需要经历编译、产物传输到真机、调试启动等步骤才能看到最终效果。抖音作为一个超大规模的 App,往往需要两三分钟后才能看到运行效果。且正随着工程复杂度的增加而持续劣化中,严重影响了研发效率。


本次演讲首先会分析主要的耗时步骤,可能的度量方式与优化思路。其次会简单对比业内其它优化方案(比如 Preview、Mergable Library、Injection 等)的优缺点。最后会深度介绍抖音为何选择利用动态库的特性,结合对研发流程和构建工具链的改造,对构建用时进行大幅优化,并且保持在与工程复杂度无关的常数级别,完成彻底的治理。


张星宇 2018 年加入字节跳动,持续专注于客户端研发效能方向。曾主导公司内组件发布、Pipeline 编排、移动端 DevOps 平台从零到一的建设。目前负责编译构建、索引调试等客户端研发效率和体验的优化工作。他在本次会议的详细演讲内容如下:


演讲提纲

1. 项目背景

  • 增量构建各阶段主要耗时瓶颈分析和度量方式

  • 业内常见的优化方案介绍,各自优缺点分析

2. 核心实现流程

  • 基于动态库方案的优势及挑战

  • 链接器的工作模型和动态库常见的符号问题

  • 构建流程与链接器配合调整,保障产物正确性

  • 常见的不兼容动态库的场景,以及适配方案

3. 落地收益与未来规划

  • 在抖音的实际落地效果与收益

  • 渐进式迭代思路


您认为,这样的技术在实践过程中有哪些痛点?

  • 部分特殊的业务代码如果没有考虑过动态库场景,有一定的适配成本

  • 部分改动需要对构建步骤有一定的调整,需要结合构建系统(比如 Bazel)的支持才能达到完全无侵入的体验

  • 工程规模越大,方案收益越大。对于中小型业务来说收益就不一定足够明显


演讲亮点

  • 利用动态库的方式完成秒级链接和构建耗时的大幅降低

  • 基于对构建工具链的改动保障任意多个组件可以转换为动态库

  • 通过将线性复杂度降维成常数复杂度,对关键耗时步骤进行根本性的优化治理


听众收益

  • 对构建各个环节的主要耗时点、度量方式、可能的优化思路有整体的了解

  • 对动态库的原理和优点有更深入的理解

  • 对链接器的工作原理有更深入的理解


除此之外,本次大会还策划了多模态大模型及应用AI 驱动的工程生产力面向 AI 的研发基础设施不被 AI 取代的工程师大模型赋能 AIOps云成本优化Lakehouse 架构演进越挫越勇的大前端等专题,届时将有来自不同行业、不同领域、不同企业的 100+资深专家在 QCon 北京现场带来前沿技术洞察和一线实践经验。


目前,所有大会演讲嘉宾已结集完毕,了解更多报名和详情信息可扫码或联系票务经理 18514549229 咨询。



为确保大会顺利举行,现诚邀志愿者加入,时长 3.5 天。可与大咖交流、获极客时间 VIP 月卡、大会演讲视频资源和证书。主办方提供午餐和交通支持。时间:4 月 9 日 13:00-4 月 12 日 18:00,地点:北京万达嘉华酒店,报名链接:https://www.infoq.cn/form/?id=2088

2025-04-07 18:0010104

评论

发布
暂无评论

广西首次!3DCAT实时云渲染助力南宁数字气象科普馆上线

3DCAT实时渲染

云计算 云渲染 元宇宙 3DCAT 虚拟数字气象馆

ITSM | 权威指南发布,高速IT服务管理团队是什么样子的?

龙智—DevSecOps解决方案

数字化 ITSM IT服务管理中心

快速构造String对象及访问其内部成员的技巧

阿里技术

Java jdk FASTJSON2

npm 包 chalk-next 被开发者投毒,导致 SRC 目录被删

墨菲安全

npm 投毒 npm chalk-next chalk-next 投毒

软件测试/测试开发丨接口管理工具YApi怎么用?颜值高、易管理、超好用

测试人

软件测试 接口测试 YAPI 测试开发

可观测性之Log4j2优雅日志打印原创

宋小生

日志 可观测性 log4j2

关于 Serverless 应用架构对企业价值的一些思考

阿里巴巴云原生

阿里云 Serverless 云原生

CodeArts TestPlan:一站式测试管理平台

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

可以一学的代码优化小技巧:减少if-else冗余

华为云开发者联盟

JavaScript 前端 代码 华为云 企业号 1 月 PK 榜

TiDB 6.5 LTS 发版

TiDB 社区干货传送门

新版本/特性发布

缓存与数据库双写时的数据如何保证一致性?

风铃架构日知录

Java 程序员 后端 开发工程师 后端开发工程师

【架构设计】如何让你的应用做到高内聚、低耦合?

JAVA旭阳

Java 架构

2022年度回顾 | 这一年,LigaAI写了10万字

LigaAI

程序员 产品经理 敏捷开发 2022年终总结 企业号 1 月 PK 榜

数据库发展史

TiDB 社区干货传送门

数据库前沿趋势

软件测试/测试开发丨你以为Shell只是命令行?读懂这篇文,给你的工作赋能

测试人

Shell 软件测试 命令行 自动化测试 测试开发

浅析华为云基于HBase MTTR上的优化实践

华为云开发者联盟

大数据 后端 华为云 企业号 1 月 PK 榜

Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题

阿里巴巴云原生

Java 阿里云 容器 云原生

灵雀云入选2022 EDGE AWARDS「创新场景50」年度最佳场景实践榜单

York

云原生 数字化转型 业务思维 科技创新

「技术直播」分布式数据库订阅功能的原理及实现

TDengine

数据库 tdengine 时序数据库

分久必合?数据库进入“超”融合时代 | 爱分析调研

YMatrix 超融合数据库

数据库 数字化转型 案例分享 超融合数据库 YMatrix

关于 TiDB 对接数据仓库的一些思考

TiDB 社区干货传送门

实践案例 新版本/特性解读 数据库架构设计 6.x 实践

从0到1介绍一下开源大数据比对平台dataCompare

诸葛子房

大数据 开源 低代码

首汽约车驶向极速统一之路!出行平台如何基于StarRocks构建实时数仓?

StarRocks

数据库

版本控制 | 一文了解虚拟制作,进入影视制作新赛道

龙智—DevSecOps解决方案

版本控制 版本控制软件 虚拟制作

“数据库内核从入门到精通 ”系列课开讲!

阿里云数据库开源

开源数据库 polarDB PolarDB-X 阿里云数据库 PolarDB for PostgreSQL

软件测试/测试开发丨接口测试该怎么做?持证上岗的Charles,可以帮你做什么?

测试人

软件测试 自动化测试 接口测试 charles 测试发开

做产品质量“守护神” 华为云CodeArts TestPlan测试管理平台解读

科技热闻

发布文章指引手册

TiDB 社区干货传送门

社区活动

从分钟到秒:抖音如何通过动态库优化实现高效构建 |QCon北京_架构_QCon全球软件开发大会_InfoQ精选文章