170秒变1秒!追踪全球Vibe Coder 5000亿Token的junhoyeo/tokscale v1.1.0发布
5000亿Token背后的故事
junhoyeo/tokscale 是一个追踪 AI 编程助手 Token 使用量的开源工具,支持 Claude Code、Cursor、Gemini CLI 等主流平台。上线至今,GitHub 收获 480+ Stars,全球用户累计追踪的 Token 数量已突破 5000亿个。
5000亿是什么概念?这相当于数百万美元的 AI 算力消耗。而 tokscale 帮助开发者们把这些「隐形消费」可视化了出来。
https://github.com/junhoyeo/tokscale
然而某天,GitHub Issue 里出现了一个让我震惊的报告:
“点击 Submit 按钮后,需要等待将近 3 分钟。这是正常的吗?”
170秒。
在一个追踪 5000 亿 Token 的服务里,数据提交竟然需要接近 3 分钟。这太讽刺了。


问题根源:经典的 N+1 查询
tokscale 的数据提交逻辑是这样的:用户提交使用数据后,服务器按日期存储。提交一年的数据,大约会产生 365 条日期记录。
问题出在存储逻辑上。原来的代码对每个日期都单独执行 INSERT 或 UPDATE 查询:
// 原来的写法 (伪代码)
for (const day of days) {
const existing = await db.query("SELECT * FROM usage WHERE date = ?", day.date);
if (existing) {
await db.query("UPDATE usage SET ... WHERE date = ?", day.date);
} else {
await db.query("INSERT INTO usage ...", day);
}
}
// 332天 = 332次查询 😱
生产环境使用 Neon(Serverless Postgres),每次查询都有约 500ms 的网络往返开销。
500ms × 332次 = 166秒,加上事务开销就是 170秒。
解决方案:开源社区的力量
社区贡献者迅速提交了 PR,将 332 个查询合并为 2 个批量查询:
// 优化后 (伪代码)
// 1. 内存中分类
const existingDates = await db.query("SELECT date FROM usage WHERE date IN (?)", allDates);
const existingSet = new Set(existingDates);
const toInsert = days.filter(d => !existingSet.has(d.date));
const toUpdate = days.filter(d => existingSet.has(d.date));
// 2. 批量执行 - 只需2次查询!
await db.batchInsert(toInsert);
await db.batchUpdate(toUpdate);
| 指标 | 优化前 | 优化后 | 提升 |
|---|---|---|---|
| 查询次数 | 332次 | 2次 | 166倍 |
| 执行时间 | 170秒 | <1秒 | 170倍 |
v1.1.0 完整更新
- 🚀 批量查询优化(170秒 → 1秒)
- 🔐 多账户 Cursor 登录支持
- 🎯 动态模型名匹配
- 🖥️ Headless 模式日志聚合
反思:AI 写的代码,社区来修
这段 N+1 代码是 AI 编程助手帮我写的。逻辑正确,但漏掉了性能陷阱。
AI 时代的教训:
- AI 生成的代码仍需人工 Review
- 性能模式识别还需要人的经验
- 开源社区的集体智慧依然有效
AI 写的 bug,全球开发者一起修。这就是开源的魅力。
试试看
curl -fsSL https://bun.sh/install | bash
bunx tokscale@latest
如果你也好奇自己每天「烧」了多少 Token,欢迎试试!
🔗 链接
- GitHub: https://github.com/junhoyeo/tokscale
- 官网: https://tokscale.ai
⭐ 支持作者
如果这篇文章对你有帮助,欢迎:
我会持续分享 AI 工具、开源项目和性能优化相关的内容。你的支持是我继续创作的动力!🙏
在GitHub中,我们还发现了翻译成简体中文的README。
https://github.com/junhoyeo/tokscale/blob/main/README.zh-cn.md

原文链接:Disquiet - 170초 걸리던 제출이 1초로 줄었습니다
作者:https://github.com/junhoyeo
原创加速声明:本文改编自作者在韩国开发者社区 Disquiet 发布的原文《170초 걸리던 제출이 1초로 줄었습니다. 전세계 바이브코더들의 토큰 5천억 개 트래킹하는 tokscale의 1.1.0 릴리즈》,为方便中国开发者阅读而加速本地化。
更多推荐



所有评论(0)