1战场背景
测试环境
这是一个典型的大型前端 monorepo:
项目规模:2998 个 TS/TSX 文件 代码结构:packages/modules/plan-list(计划列表) packages/components(公共组件) packages/extensions(扩展插件) 测试模块:计划管理、工作流编辑器、消息推送
三位选手
🔧 grep
传统派文本级别搜索最可靠
📊 CodeGraph
结构派AST 解析符号级查询
🤖 Semble
智能派语义搜索自然语言
2速度对决
测试场景
| 场景1 | ||
| 场景2 | ||
| 场景3 |
grep 真实表现
场景1:计划分组搜索
📊 结果:19 行匹配
⏱️ 耗时:0.572秒
场景2:消息推送搜索
📊 结果:9 行匹配
⏱️ 耗时:0.421秒
场景3:编辑器初始化
📊 结果:5 行匹配
⏱️ 耗时:0.335秒
grep 评分:7/10 — 可靠但不够智能
⚡ 速度:0.3-0.6秒📊 精度:找到匹配行但需人工筛选🔍 深度:返回文本而非代码结构
3Token 对决
传统方式的 Token 陷阱
让我们看看传统 grep + read_file 方式的真实成本:
场景1(计划分组)
grep 输出:19 行匹配涉及文件:~8 个文件grep tokens:~476 tokens
如果读取前5个文件总计:~86KB = ~21,500 tokens
总计消耗:~22,000 tokens
CodeGraph 的 Token 效率
CodeGraph 的优势在于它只返回符号元数据:
查询 createPlanGroup 符号
返回:符号位置、类型、签名
Token 消耗:~150 tokens
节省率:99.3%
Token 消耗对比表
| 99.3% | |||
| 98.1% | |||
| 99.0% | |||
| 平均 | ~13,908 | ~140 | 99.0% |
💡 关键发现:CodeGraph 在 Token 节省上完胜,因为它只返回元数据而不是代码片段。
4能力对决
自然语言理解测试
自然语言理解评分
🤖 Semble:9/10 — 深度理解自然语言
📊 CodeGraph:5/10 — 只懂符号,不懂自然语言
🔧 grep:2/10 — 只懂精确文本
结构化分析测试
结构化分析评分
📊 CodeGraph:10/10 — 完美的结构分析工具
🤖 Semble:4/10 — 不擅长结构分析
🔧 grep:1/10 — 基本无此能力
5综合评分
总体评分表
| 综合得分 | 100% | 4.2/10 | 8.7/10 | 7.0/10 |
🏆 总冠军:CodeGraph (8.7/10)
核心优势:在最重要的结构分析和 Token 效率上完胜
适用场景:重构、影响分析、调用链追踪
🥈 亚军:Semble (7.0/10)
核心优势:强大的自然语言理解能力
适用场景:快速理解代码、学习新项目
🥉 季军:grep (4.2/10)
核心优势:最可靠,随处可用
适用场景:快速字符串匹配、紧急场景
6实战工作流
推荐组合策略
💡 推荐工作流
日常开发:主要使用 Semble(语义搜索)+ 辅助使用 CodeGraph(结构分析)
复杂重构:主要使用 CodeGraph(影响分析)+ 辅助使用 Semble(快速定位)
知识建设:主要使用 Semble(收集代码片段)+ 辅助使用 CodeGraph(理解关系)
实战案例
# Step 1: 语义搜索,快速定位 semble search "创建计划工作流 create plan workflow" . --top-k 10 → 找到 10 个相关代码片段 # Step 2: 结构分析,理解关系 codegraph_callers(symbol="createPlanGroup") → 找到所有调用 createPlanGroup 的地方 # Step 3: 影响分析,评估修改 codegraph_impact(symbol="createPlanGroup") → 如果修改 createPlanGroup,会影响哪些代码 # Step 4: 深入阅读(如果需要) read_file(path="packages/.../services.ts") → 阅读完整实现
Token 消耗对比
传统方式(grep + read):~22,000 tokens 优化工作流(Semble + CodeGraph + read):~650 tokens - 节省率:97% 🎉
7核心发现
✨ 核心发现
1. Token 节省是真实的
相比传统的 grep + read_file 方式,CodeGraph 和 Semble 都能节省 95% 以上的 Token。
2. 工具互补,而非替代
CodeGraph 和 Semble 解决的是不同类型的问题。结构分析 vs 语义理解。
3. 速度不是瓶颈
在现代硬件上,所有工具的速度都足够快。关键在于工具的能力和返回结果的质量。
4. 自然语言是未来
虽然 CodeGraph 在本次测试中胜出,但 Semble 的自然语言理解能力代表了未来方向。
8最终建议
🎯 最终建议
1. 同时使用两者 — 不要做选择题,要做组合题
2. MCP 配置优先 — 让 AI 自动选择最合适的工具
3. 建立工作流 — 不要依赖单一工具,建立完整的搜索流程
4. 定期评估 — 随着项目变化,定期评估工具的有效性
测试结论:CodeGraph (8.7/10) > Semble (7.0/10) > grep (4.2/10)
测试规模:2998 个 TS/TSX 文件
报告完成日期:2026-05-20
感谢阅读!这是一份基于真实测试数据的客观对比报告。如果你有任何问题或想深入了解某个方面,欢迎继续交流。
夜雨聆风