# 2026 年 FSRS vs SM-2：哪种间隔重复算法更能帮你记住内容？

*2026-03-12*

一款闪卡应用大概只能“显得很聪明”一周左右。接着，简单卡片回来得太频繁，困难卡片又会莫名其妙地消失很久，整件事也就渐渐从学习变成了管理工作。

这通常不是设计问题。

这是排程器的问题。

很多年来，这个类别里的默认答案一直是某种版本的 **SM-2**。它简单、知名，而且已经足以证明间隔重复确实有效。

我并不觉得 SM-2 很差。

我只是觉得它老了。

所以，到了 2026 年，更有意义的问题已经不是“间隔重复有没有用”。这件事当然有用。真正的问题是：你的闪卡应用所使用的排程器，是否还配得上继续作为默认值。

## 为什么 SM-2 能活这么久

SM-2 的地位不是白来的。

它足够容易理解，足够容易实现，也足够有名，因此很多闪卡产品都直接继承了它，而不需要重新思考太多。很长一段时间里，这样就够了。

而且公平地说，它现在也依旧比随机复习时间或固定间隔强得多。

问题在于，“比随机好”对于一个严肃的学习工具来说，并不是一个很高的标准。

如果一个产品建立在“卡片具体什么时候回来真的很重要”这个前提上，那么排程器就不是什么后端小细节，它就是产品本身。

## FSRS 改变了什么

FSRS 追求的是同样的目标，但采用了更好的记忆模型。

它不是依赖较粗糙的 ease 风格方法，而是会跟踪这些信息：

- 稳定性
- 难度
- 复习历史
- 目标记忆保持率

这会让排程器对卡片实际发生了什么有更多上下文。

落到实际体验里，通常意味着：

- 你已经掌握的卡片不会继续浪费你的时间
- 你掌握得不好的卡片会得到更合理的调整
- 整个复习队列看起来不会那么随意

这正是学习者能切身感受到的部分，即使他们根本不想去看任何公式。

## 你真正能感觉到的差异

大多数人不会靠看公式来比较 **FSRS vs SM-2**。

他们会在几周之后从实际体验里感受到区别。

用比较弱的排程器时，简单卡会频繁到让人心烦，困难卡又会在尴尬的时间点回来。整个队列会一直让人隐约觉得哪里不太对，而这正是让日常复习变得不那么愉快的高效方式。

这种摩擦感的重要性，比很多人愿意承认的还要大。

闪卡本质上是一种习惯型产品。如果复习流程感觉比它本该有的更沉重，你损失的不只是效率，而是会越来越不想在明天再打开这个应用。

所以这并不是什么只属于学习极客的小众实现细节。它会改变这个产品是否值得你明天再回来。

## FSRS 更强的地方在哪里

对于大多数认真学习的人来说，FSRS 在真正重要的事情上表现更好：

- 把复习工作量控制在合理范围内
- 朝着明确的记忆保持率目标来排程
- 更现实地根据回忆难度做出调整
- 避免在你已经掌握的卡片上制造额外重复

这也是为什么现在很多人会关注 **Anki FSRS**。他们并不是因为这个缩写更新了才切换，而是因为一旦队列变大、错误的复习时机变得明显，排程体验确实会更好。

## SM-2 现在还活着的唯一理由

SM-2 更容易解释。

如果你在做一个很小的原型、讲解间隔重复的概念，或者做一个非常轻量的闪卡小玩具，更简单的逻辑确实有吸引力。

这是它在简单系统里继续存在的合理理由。

但如果已经有更好的排程器可用，这并不足以支撑一个严肃的闪卡应用仍把它当作长期默认值。

## 无聊的实现细节，比缩写本身更重要

这也是很多比较文章会跳过的部分。

“我们用了 FSRS” 并不会自动让一个闪卡产品变好。

真正重要的是，具体实现是否足够认真。

在 [Nibomo](https://nibomo.com/zh/) 里，FSRS 被当作产品契约，而不只是一个营销标签。排程行为在后端和 iOS 应用之间保持一致。Web 应用复用了同样的排程数据契约，但没有再额外做第三套独立的 FSRS 实现。系统会在每张卡上存储隐藏的记忆状态，保留显式的学习步骤和重新学习步骤，支持工作区级别的期望记忆保持率、学习步骤、重新学习步骤、最大间隔和 fuzz 设置，并且在排程时使用真实客户端复习时间 `reviewedAtClient`。

这些听起来像后端细节，但它们恰恰决定了两个客户端给同一张卡排程时，结果是保持一致还是逐渐漂移。

一旦排程开始漂移，用户会很快感觉出不对劲，即使他们自己也说不清为什么。

## 学习者真正该关心什么

如果你在挑选闪卡工具，我会少看功能清单，多看一个听起来枯燥但其实关键的问题：

这张卡到底什么时候回来？而且当我已经做过几百次或几千次复习之后，这个时机仍然合理吗？

这才是最佳闪卡算法真正重要的地方。

不是在理论里。

而是在工作量里。

在记忆保持率里。

在整个队列到底像帮助，还是像惩罚。

## 所以，2026 年哪种间隔重复算法更好？

对于大多数真实学习工作流来说，**FSRS 是更好的间隔重复算法**。

SM-2 当然值得肯定，它帮助定义了这个类别。但如果你正在构建现代应用，或者正在选择一个应用，那么现在更站得住脚的默认值已经是 FSRS 了。

它给排程器更好的信息、更好的控制，以及更高的概率去匹配真实记忆，而不是停留在更粗糙的近似上。

这正是间隔重复的核心目的。

如果你想找一款把排程质量当成核心产品决策、而不是勾选项的 **开源闪卡应用**，[Nibomo](https://nibomo.com/zh/) 正是朝这个方向构建的。

---
*[查看此页面的带样式 HTML 版本](<https://nibomo.com/zh/blog/fsrs-vs-sm-2/>)*

*AI agent 可以从 `GET https://api.flashcards-open-source-app.com/v1/` 开始，为用户在该服务中创建账号。完成设置后，也可以通过 MCP 连接 `https://mcp.nibomo.com/mcp`。*

*提示：在 https://nibomo.com 上任意 URL 后追加 `.md`，即可获得该页面的纯 Markdown 版本。*