写点什么

“这是我迄今见过的最大提速”:FFmpeg 开发者因手写汇编再提速 100 倍而自豪

Mark Tyson

  • 2025-08-20
    北京
  • 本文字数:1210 字

    阅读完需:约 4 分钟

“这是我迄今见过的最大提速”:FFmpeg 开发者因手写汇编再提速 100 倍而自豪

FFmpeg 项目背后的开发者们再次声称,通过运用手写汇编代码的艺术,性能得到了重大提升。在应用了 最新 的补丁后,用户应该能在跨平台开源媒体转码应用程序中看到“100 倍的速度提升”。



“这是迄今为止我见过的最大提速”


去年 11 月,我们报道了 FFmpeg 性能提升的消息,该提升可以使某些操作速度提高多达 94 倍。最新的手写汇编补丁将应用程序的“rangedetect8_avx512”性能提高了 100 倍。如果你的现代处理器不支持 AVX512,那么使用 rangedetect8_avx2 代码路径仍然可以看到 64% 的提升。


你将在哪里感受到这些速度提升?在一些后续的推文中,FFmpeg 开发者承认“这是一个单一的功能,现在快了 100 倍,而不是整个 FFmpeg。”他们后来进一步解释说,根据你的系统,可能享受到 100% 速度提升的功能是“一个不常用的过滤器”。


这个功能的不常用意味着它直到现在才被开发者优先考虑。但我们也知道,过滤器代码是使用 SIMD(单指令,多数据)处理概念进行重新编码的,以极大地改善当今强大芯片上的并行处理。


显然,编译器——将高级语言代码转换成汇编(机器)代码的程序——仍然无法与手写汇编程序竞争。或者你可以说,“编译器的寄存器分配器很糟糕”,正如 FFmpeg 今天在推特上所说的那样。



(图片来源:FFmpeg)


汇编语言的福音传道者


回顾 20 世纪 80 年代和 90 年代家庭计算的黄金时代,当时固定规格系统的生命周期为 5 年——并且严格限制了处理资源——手写汇编代码优化在加速计算机、游戏和其他软件的业务中扮演了更重要的角色。


FFmpeg 或许是为数不多的“汇编福音传道者”之一。开发团队甚至还经营着一 所“学校”。


FFmpeg 工具和库可以在 Linux、Mac OS X、Microsoft  Windows、BSDs、Solaris 等系统上运行。最受欢迎的视频播放器软件之一,VLC,使用了 FFmpeg 项目中的 libavcodec 和 libavformat 库。


原文链接:


https://www.tomshardware.com/software/the-biggest-speedup-ive-seen-so-far-ffmpeg-devs-boast-of-another-100x-leap-thanks-to-handwritten-assembly-code


声明:本文为 InfoQ 翻译整理,不代表平台观点,未经许可禁止转载。


今日好文推荐


180 天狠赚 5.7 亿,8 人团队全员财富自由,最大功臣是 Claude 和 Gemini


颠覆 Cursor,AI 编程不再需要 IDE!用并行智能体重构开发范式,MongoDB CEO 高调站台


弃 Python 拥抱 JVM,Spring 之父 20 年后再造“革命性框架”:我从未如此确信一个新项目的必要性


从 3 个月业余项目到全球第一语言!Python 之父坦言:当年“将就”的代码,如今全都真香了


会议推荐


首届 AICon 全球人工智能开发与应用大会(深圳站)将于 8 月 22-23 日正式举行!本次大会以 “探索 AI 应用边界” 为主题,聚焦 Agent、多模态、AI 产品设计等热门方向,围绕企业如何通过大模型降低成本、提升经营效率的实际应用案例,邀请来自头部企业、大厂以及明星创业公司的专家,带来一线的大模型实践经验和前沿洞察。一起探索 AI 应用的更多可能,发掘 AI 驱动业务增长的新路径!



2025-08-20 17:221

评论

发布
暂无评论

从根上学习Git

书旅

git 工具 版本控制 版本管理工具

HTTP协议-基础

Jaykey

大前端 HTTP

HTTP协议-进阶

Jaykey

大前端 HTTP

超超超全递归技巧讲解,这次带你拿下递归

多选参数

数据结构 算法 递归 数据结构与算法

让类/进程/脚本「单身」的方法

小林coding

c c++ Shell 设计模式 单例模式

gRPC在Spring Cloud中的应用

xcbeyond

Java gRPC SpringCloud

SpringCloud(Netflix)-技术专题-微服务入门介绍

码界西柚

2020大厂web前端面试常见问题总结

华为云开发者联盟

CSS 面试 响应式 大前端 浏览器

全球移动服务生态的暗涌与新机

脑极体

误执行 rm -fr /*,我删删删删库了,要跑路吗?

小林coding

Linux 程序人生 Shell linux命令

老张「原创小说」

瓜藤老祖

个人成长

C++ this指针的理解和作用

小林coding

c c++ 指针

直播技术的背后--RTMP协议

soolaugust

直播 RTMP

为什么使用Portainer,而不是Docker CLI来管理Docker环境

xcbeyond

Docker 运维 Portainer

「C++ 篇」答应我,别再 if else 走天下了可以吗

小林coding

c++ 编程 设计模式 编程习惯 编程风格

为什么直播系统不用RTP协议

soolaugust

WebRTC 直播 RTMP rtp

第二次推荐笔记:wolai

申屠鹏会

国内首家 ABM 营销技术服务商火眼云完成5000万元A轮融资

人称T客

C++ 深入浅出工厂模式(初识篇)

小林coding

c++ 设计模式 工厂模式

为什么你做的 Excel 表不好用?

Tony Wu

效率工具 产品设计 Excel ER图

Newbe.Claptrap 框架如何实现在多种框架之上运行?

newbe36524

Docker 云计算 微服务 .net core ASP.NET Core

Web 全栈开发利器: 强大的在线 Cloud IDE

华为云开发者联盟

Web python3.x 全栈 编码 CloudIDE

精美前端UI(VUE)界面,ASP.NET通用工作流开发分享

雯雯写代码

工作流 可视化

对待一件事,从不喜欢再到喜欢,转变需要多大

良知犹存

程序人生

Spring Boot Actuator微服务服务监控

xcbeyond

Java 微服务 springboot actuator 服务监控

修改系统时间,导致 sem_timedwait 一直阻塞的问题解决和分析

小林coding

Linux 编程 问题处理

字节跳动想招什么样的技术人?

池建强

优化教育体验 智微智能高品质录播系统

InfoQ_967a83c6d0d7

音画同步体验有多好,来看看即构的自研互动白板就知道啦

ZEGO即构

在线教育 SVG canvas

C++ 深入浅出工厂模式(进阶篇)

小林coding

c++ 设计模式 工厂模式

大数据技术发展(一):大数据技术的起源

cristal

Java 大数据 hadoop

“这是我迄今见过的最大提速”:FFmpeg 开发者因手写汇编再提速 100 倍而自豪_编程语言_InfoQ精选文章