Claude Code vs Codex:相同的 3 个编程任务,各执行 3 次
选择编程代理时,最想知道的是“做同一件事,谁做得更好、更快”。我们设计了 3 个小任务,用相同的指令让 Claude Code 和 Codex CLI 各执行 3 次,并用代理无法看到的隐藏测试评分。
运行日期 2026-10-04
一览
- 正确率:两个工具均在全部 9 次运行中通过了所有隐藏测试。在这种规模的任务中,未体现出结果准确性的差异。
- 速度:按各任务的中位数计算,Codex(GPT-6.1 Sol)的完成速度约为 Claude Code(Claude Opus 5)的 1.8~2 倍。各任务的耗时差为 16~43 秒。
- Token:按各任务的中位数计算,Claude Code 处理的输入 token(含缓存复用)约为 Codex 的 4.2~5.7倍,输出 token 约为 3.5~4.3倍。关闭所有 MCP 工具连接后再次运行 T1,输入 token 规模(约 39.7万)仍相近,但未能确定差异的原因。
- 代码:在修复漏洞任务中,两个工具修改了相同的三行。在性能任务中,Codex 编写的代码保留了原代码极少出现的行为(id 为 NaN 的情况),Claude Code 则使用更短的代码并添加了说明原因的注释。
- Gemini:Gemini CLI 也在相同条件下运行,但在身份验证阶段就停止了。这是因为自 2026 年 6 月 18 日起,Gemini CLI 已停止为个人、Google AI Pro 和 Ultra 账户提供服务。
结果
耗时为 3 次运行的中位数,括号内为最快~最慢值。
| 任务 | 工具 | 通过情况(全部 3 次) | 耗时 | 输入令牌 | 输出令牌 | 修改行数(+/−) |
|---|---|---|---|---|---|---|
| T1 修复漏洞 | Claude Code | 3/3 | 36.6s (36.1–48.7) | 356,196 | 1,913 | +3 / −3 |
| Codex CLI | 3/3 | 20.3s (19.1–32.5) | 85,176 | 486 | +3 / −3 | |
| T2 实现功能 | Claude Code | 3/3 | 69.8s (66–73.6) | 615,019 | 5,379 | +64 / −2 |
| Codex CLI | 3/3 | 38.2s (33.2–39.1) | 107,428 | 1,265 | +53 / −2 | |
| T3 优化性能 | Claude Code | 3/3 | 87.2s (85.3–104.3) | 561,732 | 6,085 | +26 / −12 |
| Codex CLI | 3/3 | 44.2s (39.8–55.1) | 109,749 | 1,742 | +21 / −6 |
输入令牌大部分包含重新读取前序对话时复用的缓存。两个 CLI 的令牌统计方式不同,因此仅适合比较大致规模。
Claude Code 每次运行还会报告“按 API 标准价格折算的费用”(本次实测每个任务约 0.53~1.04 美元)。订阅账户无需另行支付这笔费用,而是从套餐使用额度中扣除。Codex 不报告相同数值,因此未作比较。
3 个任务
T1 修复漏洞
住宿预订的日期计算代码(dates.js)存在 3 个漏洞:月份未从 0 开始计数、住宿天数多算 1 天、工作日计算遗漏最后一天。隐藏测试检查闰年、年末、夏令时切换日等情况。
T2 实现功能
按照说明文档(README)从零编写 CSV 解析器。隐藏测试检查引号内的逗号和换行、连续两个双引号("")的处理、Windows 换行(CRLF)、空字段及引号未闭合的错误。
T3 优化性能
汇总 20 万笔订单的代码(去重、客户排名、每日合计)运行过慢。任务是在不改变结果的前提下,将其优化到 1 秒内完成。隐藏测试检查结果是否与原代码一致、并列时的顺序是否保留,以及 30 万笔订单是否也能在 1 秒内完成。
所有运行使用的指令
以下文本中,仅 'Task:' 后的一句话随任务变化。
This folder is a small Node.js project (ES modules, no dependencies). Read the code, README.md if present, and the tests. Task: {task} Do not modify existing test files. When you are done, make sure `node --test` passes.- T1 修复漏洞 —
Fix the bugs in dates.js so that every function behaves as its comment describes and the tests pass. - T2 实现功能 —
Implement parseCSV in csv.js according to README.md. - T3 优化性能 —
Make report.js fast enough as described in README.md, without changing any results.
测量方法
- 运行日期 2026-10-04(韩国时间晚间),Apple M1 Pro · macOS 26.6 · Node.js 22。
- Claude Code 2.1.250 — 默认模型 Claude Opus 5(简短的辅助任务也会调用 Claude Haiku 4.5)。Codex CLI 0.159.2 — 模型 GPT-6.1 Sol,推理强度 medium。
- 两个工具均登录运营者的个人订阅账户,以非交互模式(claude -p、codex exec)运行。自动允许修改文件和运行 node。
- 每次运行前,都将原始任务复制到新文件夹。为减少执行顺序的影响,第 1·3 轮先运行 Claude Code,第 2 轮先运行 Codex。
- 耗时从命令开始执行时计至结束。令牌数量直接采用各 CLI 在运行结果中报告的数值。
评分方法
- 每个任务设置 3 个代理可见的测试,以及仅在评分时加入的隐藏测试(9~14 个)。隐藏测试先用运营者亲自编写的正确参考代码验证。
- 评分前,将可见测试文件恢复为原始版本。全部 18 次运行中,代理均未修改测试文件。
- 日期漏洞可能仅在采用夏令时的地区出现,因此分别在纽约和柏林时区运行,并记录较低的分数。
两个工具编写的代码有何不同
- T1:两个工具各运行 3次,共 6次,都修改了相同的三行(月计算、移除住宿天数的 +1、包含最后一天)。每次改动的行数也相同,均为新增 3行、删除 3行。
- T2:两者都使用了逐字符读取的解析器。Claude Code 新增了 63~67行,Codex 新增了 53~55行,Claude Code 的说明性注释略多。
- T3:两者都将“每次从头搜索列表”的部分改为使用哈希结构(Map·Set)。Codex 连原代码在 id 为 NaN 时不将其视为重复项的行为也保留了。Claude Code 则用注释说明了并列时为何能保留首次出现的顺序。
为何未纳入 Gemini
- Gemini CLI 0.58.0 也使用相同任务和指令运行,但三个任务均在 4 秒内因身份验证错误结束。错误内容:"This client is no longer supported for Gemini Code Assist for individuals. To continue using Gemini, please migrate to the Antigravity suite of products"。
- 根据 Google 官方公告,自 2026 年 6 月 18 日起,Gemini CLI 和 Gemini Code Assist IDE 扩展不再处理 Gemini Code Assist 个人版、Google AI Pro、Google AI Ultra 等级的请求。官方建议改用 Antigravity 和 Antigravity CLI (agy)。
- 使用 Antigravity CLI 进行相同的实测需要先完成一次交互式登录,因此未纳入本次实测。
本次实测的局限
- 本次仅测试了 3 个小型单文件任务,每个任务只运行 3 次。在大型代码仓库、需求模糊或需要修改多个文件的任务中,结果可能不同。
- 耗时受服务器拥堵、网络及模型和 CLI 版本影响。在同一天、同一台电脑上交替运行只能减少这些影响,无法完全消除。
- Codex 使用推理强度 medium(运营者的设置值),Claude Code 使用默认设置。更改推理强度或模型会影响速度和令牌数量。
- 未测量订阅套餐的使用额度减少了多少。
该选什么
以下是运营者基于本次实测结果的意见。
- 对于修复小漏洞、实现函数等范围明确的任务,本次实测未显示两个工具的结果存在差异。优先尝试已付费订阅(ChatGPT 或 Claude)中包含的工具是合理的选择。
- 如果需要快速反复执行相同任务,Codex 在本次实测中约快 2 倍,使用的令牌也更少。
- Claude Code 表现出通过更多步骤进行验证、并用注释说明原因的倾向。如果生成的代码需要人工阅读和审查,这可能是一个优点。
- 此前使用 Gemini 的个人用户需要迁移到 Antigravity CLI,因为 Gemini CLI 已无法继续使用。
全部 18 次运行记录
| 任务 | 工具 | 轮次 | 秒 | 通过的测试 | 输入令牌 | 输出令牌 | 修改行数(+/−) |
|---|---|---|---|---|---|---|---|
| T1 | Claude Code | 1 | 48.7 | 15/15 | 356,196 | 2,540 | +3 / −3 |
| T1 | Claude Code | 2 | 36.1 | 15/15 | 291,026 | 1,913 | +3 / −3 |
| T1 | Claude Code | 3 | 36.6 | 15/15 | 537,029 | 1,781 | +3 / −3 |
| T1 | Codex CLI | 1 | 32.5 | 15/15 | 107,102 | 776 | +3 / −3 |
| T1 | Codex CLI | 2 | 19.1 | 15/15 | 85,176 | 485 | +3 / −3 |
| T1 | Codex CLI | 3 | 20.3 | 15/15 | 70,801 | 486 | +3 / −3 |
| T2 | Claude Code | 1 | 66 | 17/17 | 551,891 | 5,379 | +63 / −2 |
| T2 | Claude Code | 2 | 73.6 | 17/17 | 618,636 | 5,603 | +64 / −2 |
| T2 | Claude Code | 3 | 69.8 | 17/17 | 615,019 | 5,240 | +67 / −2 |
| T2 | Codex CLI | 1 | 38.2 | 17/17 | 107,428 | 1,228 | +53 / −2 |
| T2 | Codex CLI | 2 | 33.2 | 17/17 | 87,432 | 1,265 | +53 / −2 |
| T2 | Codex CLI | 3 | 39.1 | 17/17 | 107,461 | 1,268 | +55 / −2 |
| T3 | Claude Code | 1 | 87.2 | 12/12 | 428,501 | 5,398 | +19 / −11 |
| T3 | Claude Code | 2 | 104.3 | 12/12 | 628,309 | 6,880 | +29 / −15 |
| T3 | Claude Code | 3 | 85.3 | 12/12 | 561,732 | 6,085 | +26 / −12 |
| T3 | Codex CLI | 1 | 44.2 | 12/12 | 89,678 | 1,742 | +20 / −8 |
| T3 | Codex CLI | 2 | 55.1 | 12/12 | 112,393 | 2,561 | +21 / −6 |
| T3 | Codex CLI | 3 | 39.8 | 12/12 | 109,749 | 1,593 | +21 / −5 |
下载任务及评分文件
已打包任务原文件、隐藏测试、运行脚本、18 次结果汇总(JSON)及各次运行的代码修改(diff)。可用相同方法自行重新测量。
下载 coding-agents-2026-10.zip