写点什么

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

评论

发布
暂无评论

如何在笔记本上安装openEuler 22.03 LTS

openEuler

开源 操作系统 openEuler

面试突击87:说一下 Spring 事务传播机制?

王磊

Java 面试

概述服务网格的优劣势

穿过生命散发芬芳

服务网格 9月月更

面试凉凉,阿里学长甩我一份24w字Java核心技术面试手册,真香

钟奕礼

Java 架构 后端 java面试

阿里被转载上100W次的Java面试题教程!已助我拿下9家大厂offer!

钟奕礼

Java 架构 后端 java面试

GitHub获百万推荐的面试涨薪秘籍(Java岗)惨遭封杀?

钟奕礼

Java 后端 java面试 后端架构

StratoVirt 中的 PCI 设备热插拔实现

openEuler

开源 操作系统 虚拟机 openEuler

测试开发面试真题 | 测试老兵进阶突破,成功挑战大厂 P7 Offer!

测吧(北京)科技有限公司

测试

Java高手怎样炼成?阿里大牛一份火爆GitHub的1046页笔记帮你解决

钟奕礼

Java 程序员 架构 后端 java面试

2021 金三银四面试必备?体系化带你学习:分布式进阶技术手册

钟奕礼

Java 架构 后端 java面试

阿里面试官内部题库,阿里发布2022年Java岗(正式版)面试题

程序知音

Java java面试 后端技术 秋招 Java面试八股文

一次 Rancher 和 openEuler 的上云之旅

openEuler

Linux 开源 openEuler rancher suse

openEuler 资源利用率提升之道 04:CPU 抢占和 SMT 隔离控制

openEuler

开源 openEuler

从规模化平台工程实践,我们学到了什么?

SOFAStack

小程序怎样影响传媒产业的数字化

Geek_99967b

小程序

从融云社交泛娱乐出海白皮书,看「社交+X」的全球攻略

融云 RongCloud

即时通讯 白皮书 泛娱乐社交

数据治理的核心:维度建模下的数仓构建

小鲸数据

数据仓库 维度建模 维度 数仓分层 分层划域

揭开HPC应用的神秘面纱

openEuler

开源 openEuler

别让你的 SaaS 产品由赋能变为“负能”

产品海豚湾

产品设计 产品运营 SaaS平台 B端产品 9月月更

软件测试 | 测试开发 | 测试面经 | 从测试螺丝钉到大厂测试开发,三点成长心得和面试经验

测吧(北京)科技有限公司

测试

BATJ互联网月薪38K的Java岗面试题首曝光,掌握这些大厂Offer指定跑不了

程序知音

Java java面试 后端技术 秋招 Java面试八股文

iMazing高效便捷的数据转移功能

淋雨

ios iphone

八家知名大厂联合手写的Java面试手册刚上线!竟就到达巅峰?

钟奕礼

Java 架构 后端 java面试

编译器优化那些事儿(6):别名分析概述

openEuler

开源 编译器 openEuler 毕昇 JDK

iMazing怎么恢复备份?iMazing恢复备份教程分享

淋雨

ios iphone

Embedded SIG | 树莓派的UEFI支持和网络启动

openEuler

开源 树莓派 操作系统 openEuler

开源实习 | 毕昇JDK发布国密算法实习任务

openEuler

开源 openEuler 毕昇 JDK

开源之夏 | 【结项报告】毕昇Fortran编译器内联动态库函数str_copy

openEuler

开源 操作系统 openEuler 毕昇 JDK

小程序容器,组装式应用的一种方案

Geek_99967b

小程序

公司内部分享文档应该怎么写?看这篇就够了

Baklib

22年程序员更卷了,金九银十“面试必备小册”最新开源

程序知音

Java 阿里 后端技术 秋招 Java面试题

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