10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

从分钟到秒:抖音如何通过动态库优化实现高效构建 |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:0015095

评论

发布
暂无评论

一文详解Kafka API

华为云开发者联盟

kafka API 拦截器 Consumer API Producer API

聚焦业务价值:分众传媒在 Serverless 上的探索和实践

Serverless Devs

阿里云 Serverless 运维管理 分众传媒 2月月更

Springboot中,如何读取配置文件中的属性

华为云开发者联盟

数据库 springboot 映射 配置文件

在线脑图思维导图生成工具

入门小站

工具

SENSORO基于TDengine助力基层政府打造数字化应用标杆

TDengine

数据库 tdengine 开源 物联网

天数智芯携手龙蜥社区,以高性能算力助力开源发展

OpenAnolis小助手

Linux 开源 芯片

一站式交付体验:云效+Kubernetes

阿里云云效

阿里云 Kubernetes 云原生 持续交付 一站式平台

netty系列之:channel,ServerChannel和netty中的实现

程序那些事

Java Netty nio 程序那些事 2月月更

你会写java脚本吗?-JShell

蜜糖的代码注释

Java 后端开发 2月月更

前端培训:3 个可能有用JavaScript 类

@零度

JavaScript 前端开发

Client-go源码分析之SharedInformer及实战| 社区征文

雪雷

Kubernetes Informer 新春征文

程序员必知的8个Java开源IDE工具

编程江湖

ide

四款你必须知道的前端开发工具

编程江湖

百度智能云开物再收“一个奖状”

百度大脑

上市商业银行推进智慧银行建设,全方位赋能零售业务数字化转型

易观分析

商业银行 智慧银行

虎符交易所Hoo研究院:Open Sea上大火的NFT项目—Azuki

区块链前沿News

NFT Hoo 虎符交易所 Azuki

Worktile 权限设计

阿杰

权限控制 rbac 权限设计

移动办公时代,政企为何首选私有化的即时通讯平台?

BeeWorks

Java培训:封装的含义及实现方式

@零度

JAVA开发 封装

美景本天成,妙笔偶得之——“妙笔”是怎样炼成的?

百度大脑

加入科学计算SIG,挑战最前沿的AI+Science研发与创新

百度大脑

等保级别最高为几级?市面上常见吗?

行云管家

网络安全 等保 等级保护 过等保

做好云管理一定要云管平台吗?云管理平台应具备什么功能?

行云管家

云服务 云管平台 云资源 云管理

大数据培训:Hadoop HDFS 实现原理

@零度

hadoop 大数据开发

PingCode Wiki 权限设计之ACL

阿杰

权限系统 权限控制 acl 权限设计

这个Dubbo注册中心扩展,有点意思

捉虫大师

dubbo 注册中心

IAST 最佳实践 | 利用洞态做开源组件的安全治理

火线安全

Linux中Shell重定向

入门小站

Linux

Apsara Stack 技术百科 | 可运营的行业云,让云上资源跑起来

阿里云 科技 混合云

动态加载不适合数组类?那如何动态加载一个数组类?

华为云开发者联盟

Java 数组 动态加载 数组类

Kafka消息存储机制

编程江湖

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