Skip to content

原文(日本語に翻訳)

大量の出力を生成するシェルコマンドのメモリ使用量を改善 — コマンド出力サイズに応じて RSS(常駐セットサイズ)が際限なく増加しなくなります

原文(英語)

Improved memory usage for shell commands that produce large output — RSS no longer grows unboundedly with command output size

概要

Claude Code 2.1.45 では、大量の出力を生成するシェルコマンド(Bash ツール)の実行時にメモリ使用量が適切に管理されるようになりました。以前はコマンドの出力サイズに比例してプロセスの RSS(常駐セットサイズ)が際限なく増加していましたが、修正後はメモリが適切に管理・解放されるようになります。findgrepgit log などの大量出力を生成するコマンドを頻繁に使う場合に特に効果があります。

基本的な使い方

この改善は自動的に適用されます。Claude Code を 2.1.45 以上にアップデートするだけで、大量出力コマンドのメモリ効率が改善されます。

bash
# Claude Code をアップデート
npm update -g @anthropic-ai/claude-code

実践例

大量出力を生成するコマンドの例

以下のようなコマンドを Claude Code から実行する場合に改善の恩恵を受けられます:

bash
# 大量の出力を生成するコマンド例
find / -name "*.log" -type f          # システム全体のログ検索
git log --all --oneline               # 大規模リポジトリの全コミット履歴
grep -r "TODO" /large-codebase/       # 巨大なコードベースの検索
npm audit                             # 依存関係の脆弱性チェック
docker logs --since 24h container-id  # 大量のDockerログ

メモリ使用量のモニタリング

Claude Code のメモリ使用量を確認する方法:

bash
# Claude Code プロセスのメモリ使用量を確認
ps aux | grep claude

# より詳細な情報(Linux)
cat /proc/$(pgrep -f "claude")/status | grep VmRSS

# macOS
ps -o pid,rss,vsz,command -p $(pgrep -f "claude")

長時間セッションでの安定性向上

大量の shell コマンドを連続して実行する場合の安定性が向上しました:

# 以前: このような一連の大量出力コマンドでメモリが累積していた
> プロジェクト全体の TODO コメントを検索し、一覧を作成してください
> 最新の 1000 件のコミット履歴を分析して変更傾向を教えてください
> すべてのログファイルからエラーを抽出してください

# 2.1.45 以降: メモリが適切に管理される

注意点

  • この改善は RSS(常駐セットサイズ)の際限ない増加を防ぐものです。コマンド出力の最大サイズ制限とは異なります。
  • 非常に大きな出力(数百MB以上)を生成するコマンドは引き続き大量のメモリを使用する可能性があります。
  • 長時間のセッションで多くのシェルコマンドを実行する場合に特に効果があります。
  • Claude Code 2.1.45 へのアップデートで自動的に適用されます。

関連情報