电子产业一站式赋能平台

PCB联盟网

搜索
查看: 10|回复: 0
收起左侧

悬赏14万元,只为让Rust追平C?FFmpeg「神吐槽」:Rust真好啊,好到要靠“打钱”才能赶上C

[复制链接]

593

主题

593

帖子

7781

积分

高级会员

Rank: 5Rank: 5

积分
7781
发表于 5 天前 | 显示全部楼层 |阅读模式
点击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号
干货福利,第一时间送达!
最近有小伙伴说没有收到当天的文章推送,这是因为微信更改了推送机制,导致没有星标公众号的小伙伴刷不到当天推送的文章,无法接收到一些比较实用的知识和资讯。所以建议大家加个星标??,以后就能第一时间收到推送了。

pbg14d4jyqp6401523708.png

pbg14d4jyqp6401523708.png


整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews)近日,Prossimo 公司为其 AV1 解码器 rav1d 发起了一则“性能悬赏计划”。简单来说,就是他们用 Rust 编写的 AV1 解码器 rav1d,性能不如用 C 语言编写的 dav1d 解码器,为此 Prossimo 设立了 2 万美元(约合人民币 14.3 万元)的悬赏金,寻求能让 rav1d 的性能达到与 dav1d 同等水平的方法。

fvu2eorln4t6401523808.png

fvu2eorln4t6401523808.png

而针对这则悬赏,开源多媒体框架FFmpeg 以略带调侃的语气在 X 上讽刺道:“Rust 真好啊,好到你需要花 2 万美元才能让它跑得和 C 语言一样快。”

0s2n02kvjdp6401523908.png

0s2n02kvjdp6401523908.png

这条推文,在开发者社区又掀起了一场关于编程语言选择的激烈讨论:所以,到底是 Rust 好还是 C 语言好?

psxnqupfzeu6401524008.png

psxnqupfzeu6401524008.png

2 万美元悬赏?FFmpeg 公开质疑 Rust 性能
根据 Prossimo 公司发布的悬赏计划内容,rav1d 是他们自 2023 年 3 月开始开发的一个更安全的高性能 AV1 解码器,主要使用 Rust 编写。到了2024 年 9 月rav1d 基本完成,如今也运行良好,并通过了与用 C 语言编写的 dav1d 解码器相同的所有测试。
“只有一个问题:它的速度不如 C 语言版本快。我们希望改变这一点,并且需要你的帮助。”
Prossimo 坦言,基于 Rust 的 rav1d 解码器要比基于 C 语言的 dav1d 解码器慢 5%——这个数值看似不大,但对于潜在用户来说,足以成为一个关键的考虑因素。对此,他们的开发团队努力优化,还请来了几位有类似优化经验的承包商,却始终无法实现与dav1d 相同的性能。
而这也正是 Prossimo 悬赏 2 万美元寻求性能优化方法的原因:
“在反复思考各种可行的方案后,我们最终决定:设立一个总额为 2 万美元的奖金池,悬赏全球开发者让 Rust 编写的 AV1 解码器 rav1d 达到 C 实现的 dav1d 的性能水准。我们希望这项悬赏不仅能推动 rav1d 的性能提升,更能让我们以及整个 Rust 社区对 Rust 在性能层面与 C 的差距和潜力有更深入的理解。”
当然,Prossimo 也给这个“悬赏计划”设定了一些要求:
  • 本次挑战面向个人或团队,参与者需为以下国家或地区的合法居民或公民:美国、英国、欧盟、欧洲经济区、瑞士、加拿大、新西兰或澳大利亚。
  • 主要目的是提升性能,你的优化可以体现在rav1d 项目本身、Rust 编译器或 Rust 标准库上。
  • 需要特别注意的是,dav1d 和 rav1d 使用的是完全相同的底层汇编优化代码,你不能修改这些汇编代码。两者的不同之处仅在于 dav1d 是用 C 编写,而 rav1d 是用 Rust 编写。因此,你只能优化 Rust 层的代码或 Rust 编译工具链,并且只能使用 Rust 编写代码,不能引入任何其他语言的实现。为了避免你在不符合资格的方向上投入过多精力,强烈建议在开始之前先通过 issue 或邮件方式先向 Prossimo提问并确认。
    意料之中,Prossimo 的这个悬赏计划吸引了许多开发者的关注,其中就包括了开头所说的 Fmpeg,其“嘲讽”的评论引发行业关注:部分开发者认为这是 "传统 C 阵营" 对 Rust 热潮的一次公开质疑;也有人将其视为开源社区内部关于技术路线的正常争论。

    lnyjl4sqbdx6401524108.png

    lnyjl4sqbdx6401524108.png

    Rust 与 C 语言之间的“性能之争”
    要理解这场争议的背景,先简要回顾一下 Rust 的崛起历程。
    自 2015 年正式发布以来,Rust 近年来凭借独特的内存安全特性,逐渐在安全敏感领域崭露头角。2024 年,美国白宫国家网络安全办公室(ONCD)更是发布报告,明确呼吁政府项目采用内存安全语言,Rust 被列为重点推荐选项——然而,性能始终是 Rust 难以回避的"软肋"。
    众所周知,C 语言长期以来以极致性能著称,是众多系统级项目的首选。而 Rust 作为一门“安全性 + 性能”并重的新兴系统编程语言,近年来在 WebAssembly、嵌入式开发、区块链等场景快速崛起,但在极限性能层面是否能撼动 C 的地位,仍然是一个被持续讨论的问题。
    因此,FFmpeg 此次对于 Prossimo 悬赏计划的质疑,本质上指向了一个更深层的问题:在构建关键基础设施时,内存安全是否足以成为牺牲部分性能的理由?
    毕竟,这一问题在实时音视频处理领域尤为尖锐——直播平台对延迟的容忍度通常以毫秒计,解码器性能每下降 1% 都可能导致用户体验恶化。可另一方面,随着物联网设备激增,基于 C 语言的传统系统因安全漏洞导致的攻击事件也在逐年上升。
    面对这个问题,目前更多技术决策者倾向于“折中主义”:在安全风险高、性能压力相对较小的场景优先采用 Rust,而在对效率极度敏感的传统领域维持 C/C++ 的主导地位。在此背景下,混合编程模式逐渐流行:项目可以用 Rust 实现安全敏感的业务逻辑,同时用 C/C++ 编写性能关键模块,通过 FFI(Foreign Function Interface)实现交互。
    最后,除了“斥资 2 万美元,寻求让 Rust 实现与 C 语言同样性能的方法”这个做法本身的争议性,也有许多开发者对于 Prossimo 的悬赏规则提出不满:仅限定于特定地区开发者,排除了全球大部分开源社区成员——这被批评为“背离开源精神”。
    有开发者在 Hacker News 评论称:
    “当你用金钱激励性能优化时,却人为限制参与者范围,这本身说明 Rust 生态尚未成熟到能通过社区协作解决核心问题。”
    参考链接:
    https://www.memorysafety.org/blog/rav1d-perf-bounty/
    https://news.itsfoss.com/ffmpeg-swipe-at-rust/

    2qzpwhuvh0s6401524208.gif

    2qzpwhuvh0s6401524208.gif

    推荐阅读  点击标题可跳转1、C++训练营,来了!
    2、HarmonyOS 学习资料分享(无套路免费分享)
    我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。

    x3bdzewzaje6401524308.png

    x3bdzewzaje6401524308.png

    欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会。

    xizyt2mpyic6401524408.png

    xizyt2mpyic6401524408.png

    加个微信,打开另一扇窗
    感谢你的分享,点赞,在看三  

    oeqwbxqlyi46401524508.gif

    oeqwbxqlyi46401524508.gif

  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条


    联系客服 关注微信 下载APP 返回顶部 返回列表