24 核机器在 Polars 里空转
这是一篇对 Polars 并行执行的性能剖析,记录一个 profiling 周期里的第一批发现。测试机是 24 核 / 48 线程的 Intel Xeon Gold 5412U,负载用 TPC-H;scale factor 30 时 lineitem 约 1.8 亿行,orders 约 4500 万行。
一条 count(*) ... where l_comment like '%special%' 在 1 线程上约 20.6 秒,24 线程上约 2.76 秒,加速大约 7.5 倍。过滤被下推到 Parquet 读取。正则库用缓冲池借出 scratch 内存:池里有一个免锁槽留给最先用到该正则的线程,其余线程走互斥锁。Polars 把同一个正则对象交给每个解码线程后,其余 23 个线程会堵在借还缓冲上。修复是给每个线程一份自己的正则。8 通道内存机器上,like '%special%' 从 2544.0 ms 降到 1085.9 ms(-57.23%,6/6 轮),like 'the%' 从 1835.3 ms 降到 677.8 ms(-62.85%);24 线程扩展从约 8.6 倍升到约 20.4 倍,单线程时间基本不动。
同一周期里,窗口函数也出现空转。同样约 1.8 亿行上,sum() over (partition by ...) 约 2617 ms、约 23.06 核忙碌;带 order by 的 row_number() 约 50492 ms、约 2.29 核忙碌。组数很少时,组内排序只占少数线程。顶层调用在组数少于线程数时改走 Rayon 并行排序后,3 个分组的查询从 20402 ms 降到 10557 ms(约 -48%),50 个分组的对照查询保持持平。
原文链接:https://abokhalill.github.io/missing-cores-part-1/
fframes 1.0:用 Rust 和 SVG 在 GPU 上渲染视频
fframes 是用 Rust 写视频、用 SVG 描述画面、再在 GPU 上渲染的视频框架。作者在 r/rust 宣布该项目约五年后发布 1.0。每一帧由 Rust 函数通过 svgr! 宏返回一棵 SVG 树,静态片段在编译期哈希并缓存。GPU 后端用 Skia:macOS 走 Metal,Linux / Windows 走 Vulkan。仓库说明该后端约比内置 CPU 后端快 10 倍。编码直接链接 ffmpeg 的 libav 库。SVG 不够时可以叠 SkSL 或 Shadertoy GLSL shader。
仓库示例称一段 128 秒视频渲染耗时 36 秒。命令行可以导出时间轴、抽帧、接触表和音量分析,并写出 mp4;render --draft 用半尺寸编码单个场景。crate 名为 fframes,仓库为 dmtrKovalenko/fframes。
原文链接:https://github.com/dmtrKovalenko/fframes
Philbin:带运行时 CPU 探测的纯 Rust AEGIS 库
Philbin 是 AEGIS 认证加密算法的纯 Rust 实现,crate 名 philbin。AEGIS 是 CAESAR 竞赛获胜算法之一,对应规范为刚发布的 RFC 10032。文章称,在有 AES 硬件加速的 CPU 上,它快于 AES-GCM 和 ChaCha20-Poly1305。作者说明这是目前唯一用运行时 CPU 探测分发到对应 SIMD 实现的纯 Rust 版本:普通 release 二进制覆盖 x86-64 与 AArch64,并带软件回退,不需要 target-cpu=native。
实现里 unsafe 块一共两行,用 CPU feature token 做编译期和运行期检查。测试包含 IETF 与 Rooterberg 向量,并相对 libaegis 做差分 fuzz;另有 TVLA harness 检查与密钥相关的非常量时间。API 分成 easy 和 careful。easy 内部处理 nonce,使用操作系统 CSPRNG,默认 256 位认证标签和 AEGIS-256X4。库会拒绝全零密钥和全零 nonce。仓库:Valloric/philbin。
原文链接:https://val.markovic.io/articles/philbin-the-safest-and-fastest-aegis-library
Rust 领导理事会九月更新
这是 Rust Leadership Council 自 7 月 6 日更新以来的工作说明。9 月代表选举结果:Infrastructure 仍由 Jakub Beránek(@kobzol)代表,Language 由 Pete LeVasseur(@PLeVasseur)代表,Library 由 Mark Rousskov(@Mark-Simulacrum)代表,Moderation 仍由 Oli Scherer(@oli-obk)代表。离任代表是 TC 与 Josh Triplett。下一轮代表选举在 2027 年 3 月。
理事会已启动两名 Rust Foundation 项目董事选举,提名已收集,投票在 10 月进行。Funding 团队在此前 5 万美元之外再获 12 万美元,与 Rust Foundation Maintainers Fund 一起支持了 7 名贡献者,其中 5 名 Maintainer in Residence、2 名 Maintenance Grantee。项目优先级预算改为当年预算当年用完。Mentors 团队的 2026 年 12 月 Outreachy 轮次追加 3.2 万美元。差旅预算在原有 10 万美元之外再追加 32325 美元。
rust-lang/rust 仓库已有正式 LLM 政策,多个相关仓库跟进。理事会决定新建 LLM policy 团队,负责项目级政策与后续更新。理事会观察员政策已更新。Rust Foundation 已全职聘用此前由项目优先级预算资助的 Tomáš Šedovič,担任项目经理。此前负责撰写理事会更新的 Eric Huss 已离开理事会。
原文链接:https://blog.rust-lang.org/inside-rust/2026/09/28/leadership-council-update/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论