Claude Code 运行时的性能、稳定性和搜索问题排查。安装和登录问题见 troubleshoot-install,API 错误见 errors。

问题导航

症状去哪里
command not found、安装失败、PATH 问题troubleshoot-install
登录循环、OAuth 错误、403 Forbiddentroubleshoot-install
设置不生效、hooks 不触发、MCP 不加载Debug your configuration
API Error: 5xx、529、429、请求验证错误errors
高 CPU/内存、响应慢、挂起、搜索找不到文件本文

快速诊断:运行 /doctor(会话内)或 claude doctor(shell 中)自动检查安装、设置、MCP 和上下文占用。

高 CPU 或内存使用

常规措施:

  1. 定期运行 /compact 减少上下文大小
  2. 在主要任务之间关闭并重启 Claude Code
  3. 将大型构建目录加入 .gitignore

内存诊断:运行 /heapdump 生成 JavaScript 堆快照和内存分解报告,保存到 ~/Desktop(Linux 无 Desktop 则保存到 home 目录)。用 Chrome DevTools → Memory → Load 打开 .heapsnapshot 文件分析 retainer。

自动压缩抖动(Thrashing)

症状:看到 Autocompact is thrashing: the context refilled to the limit...

原因:压缩成功但某个文件或工具输出立即重新填满上下文,多次循环后 Claude Code 停止重试。

恢复方法:

  1. 让 Claude 分块读取大文件(指定行范围或函数)
  2. /compact keep only the plan and the diff(带焦点的压缩)
  3. 将大文件工作移到子 Agent(独立上下文窗口)
  4. /clear 如果之前的对话不再需要

命令挂起或冻结

  1. Ctrl+C 尝试取消当前操作
  2. 如果无响应,关闭终端并重启
  3. 重启后运行 claude --resume 恢复会话(不会丢失对话)

搜索和发现问题

症状:Search 工具、@file 引用、自定义 Agent 或 Skills 找不到文件。

原因:内置 ripgrep 二进制不兼容当前系统。

解决方案:安装系统 ripgrep 并设置 USE_BUILTIN_RIPGREP=0:

# macOS
brew install ripgrep
 
# Ubuntu/Debian
sudo apt install ripgrep
 
# Alpine
apk add ripgrep
 
# Windows
winget install BurntSushi.ripgrep.MSVC

然后设置环境变量:

export USE_BUILTIN_RIPGREP=0

WSL 搜索结果不完整

原因:WSL 跨文件系统(Windows ↔ Linux)的磁盘读取性能损耗导致搜索结果少于预期。/doctor 在此情况下仍显示 Search OK。

解决方案:

  1. 提供更具体的搜索范围(指定目录或文件类型)
  2. 将项目移到 Linux 文件系统(/home/)而非 Windows 文件系统(/mnt/c/)
  3. 改用原生 Windows 运行 Claude Code

获取更多帮助

  1. /doctor 一键检查安装健康、设置有效性、MCP 配置和上下文占用
  2. /feedback 向 Anthropic 报告问题(附带会话记录)
  3. 查看 GitHub Issues
  4. 直接问 Claude(内置文档访问权限)

与其他概念的关联

实践要点

  • 高内存问题先用 /heapdump 收集数据再报告,附带两个文件(快照 + 分解报告)
  • 压缩抖动通常是某个工具返回了超大结果,用 /context 找出是哪个工具
  • WSL 用户建议将项目放在 Linux 文件系统,性能差异显著