AIGC标识 Manim 渲染为什么慢?怎么加速?一份实测数据(Manim 0.21.0)

2026 年 9 月更新,测试版本 Manim Community Edition 0.21.0

先说结论。短场景慢,主要原因不在画面复杂:每次调用 manim render 大约有 2 秒固定开销,一个 3 秒的 2D 场景里,这 2 秒占了 92%。单次调用平均连 1 个 CPU 核都用不满。想提速,最管用的是把视频拆成几段并行渲染,并行数设成 CPU 性能核(P 核)的数量。manim 自带的并行编码参数,最多也就快 1.14 倍。

下面是我们在两台 Mac 上跑出来的数据,以及怎么复现。

测试环境

主测机 对照机
芯片 Apple M2(Mac mini) Apple M1 Max
核心 8 核 = 4 性能核 + 4 能效核 10 核 = 8 性能核 + 2 能效核
内存 8GB 32GB
Manim 0.21.0 0.21.0
Python 3.12.11(uv / python-build-standalone),两台用同一份 同左

每个任务都是一次真实的 python -m manim render … --format mp4,跟平时出片的流程一样,不是只导 PNG 帧。LaTeX 和文字的首次编译提前预热过,不计入耗时。每组配置跑 3 次取最短时间。所有配置输出的 MP4 必须字节级一致,对不上的整组作废。

2 秒的"入场费"

同一个场景,480p 和 1080p 的总耗时一模一样。像素量差了 3.5 倍,时间纹丝不动,说明每次 manim render 有大约 2.0 秒跟画面无关:启动 Python,导入 manim 和它的依赖,初始化场景,最后收尾写文件。

一个 3 秒的普通 2D 场景,这 2 秒占掉 92%。

一个 3 秒 2D 场景的耗时构成:固定开销占 92%,真正绘制画面只占 8%

做短视频的时候,如果把一堆小场景拆成十几个文件分别渲染,就等于交了十几次入场费。能合到一次调用里的,尽量合。

一次渲染用不满一个核

在 8 核机器上,单次 manim 调用的平均并行度只有 0.68 到 0.95 核。换句话说,电脑有 8 个核,渲染的时候 7 个在歇着。Manim 构建场景和逐帧绘制基本都是单线程。

并行数设成性能核数

把视频拆成多个片段或多个场景,同时开 W 个进程渲染:

M2 mini(4 性能核) M1 Max(8 性能核)
最高加速 5.03 倍 约 5.3 到 5.7 倍
拐点 W 超过 4 以后效率腰斩 一直涨到 W = 8

两台机器指向同一个结论:拐点就在性能核的数量上。再往上加进程,只能挤到能效核上跑,效率掉得很快。并行数等于性能核数时,并行效率在 77% 到 87% 之间。

拆段并行渲染的加速倍数:M2 mini 在 8 个进程时 5.03 倍,M1 Max 约 5.3–5.7 倍,拐点在性能核数

内存也得算。1080p 下每个并行进程大约占 350MB,8GB 的机器开 8 个进程就有点紧了。

M1 Max 那组测试时机器上还跑着别的任务(开跑前约 2.7 个核被占用),所以加速比按外部占用做了区间修正,写成 5.3 到 5.7 倍。

自带的并行编码参数帮不上大忙

--max-inflight-encoders 最多带来 1.14 倍的提升。已经开了多进程、核都占满了,再叠加这个参数反而变慢,M2 慢了 5%,M1 Max 慢了 4%。

手动给 libx264 指定线程数也会更慢,我们测到慢了 1.34 倍(单个场景实测)。它默认的自动策略已经够好,别去动。

顺带一提,并行编码不影响输出,所有配置产出的 MP4 字节数完全一样。

跨机器比速度前,先对齐 Python

同一台 M2 mini、同一份代码,只把 Python 从 Homebrew 版换成 uv 的 python-build-standalone,渲染快了约 5%,纯 Python 循环快了 41%。网上不少"某某芯片跑 Manim 更快"的对比,如果两边 Python 来源不一样,结论未必站得住。

后台负载的影响倒没想象中大。一个普通桌面程序那种量级的占用(约 12%)只让渲染慢了 2.5%。但性能核要是被占满,会慢 44%。

加速清单

  1. 合并短场景,少调几次 manim render,省掉重复的 2 秒开销。
  2. 拆段并行,并行数等于性能核数。Apple 芯片的性能核数量可以在「系统信息」里查到。
  3. 按内存定上限,1080p 每个进程按 350MB 算。
  4. --max-inflight-encoders 别和多进程并行叠着用。
  5. libx264 的线程数别手动设。
  6. 预览可以用低分辨率(-ql),不过短场景的瓶颈在固定开销,别指望它比 1080p 快多少。
  7. 公式多的场景,原生 LaTeX 流程第一次编译一个公式要几百毫秒,好在有缓存,第二次就快了。

手机上呢

如果你用 iPhone 或 iPad,可以看看「Manim教程 - 数学动画」这个 App,它把 Manim 0.21.0 装进了手机,在本机离线渲染。其中公式首次出图和峰值内存这两项有对照数据:同样在 M2 Mac mini 上测,第一次渲染新公式比原生 LaTeX 流程快 7.5 到 36 倍,峰值内存低 28% 到 38%。App 里「我的 → 工具 → 渲染基准」能测出你这台设备的速度,还能跟 Mac 上原生 Manim 的画面逐帧比对。

常见问题

为什么用 -ql 预览也要好几秒?
短场景大部分时间花在每次调用的固定开销上,约 2 秒,跟分辨率关系不大。

CPU 核越多,渲染越快吗?
单次渲染基本只用一个核。多核只有在你把任务拆开并行时才派得上用场,而且要看性能核有几个,不是总核数。

M2 渲染 Manim 比 M1 Max 快?
单个渲染任务,我们测到 M2 mini 比 M1 Max 快约 14%(已按 M1 Max 测试时的后台负载修正过;Manim 主要吃单核性能)。并行跑满时两台打平,M1 Max 多出来的性能核刚好抵掉单核上的差距。M1 Max 这组是在有负载的情况下测的,数字仅供参考。


数据采集于 2026 年 9 月 2 日。

posted @ 2026-09-25 01:25  0xBuilder  阅读(4)  评论(0)    收藏  举报