Skip to content

原文(日本語に翻訳)

Editツールが非常に大きなファイル(1 GiB超)で使用された際の潜在的なメモリ不足クラッシュを修正しました。

原文(英語)

Fixed a potential out-of-memory crash when the Edit tool was used on very large files (>1 GiB)

概要

Claude CodeのEditツールを1GiBを超える非常に大きなファイルに対して使用しようとした際、メモリ不足(Out of Memory)によるクラッシュが発生する可能性がありました。大きなファイル全体をメモリに読み込む処理に問題があり、システムのメモリを枯渇させていました。v2.1.89でメモリ効率の改善が図られ、大規模ファイルへの対応が強化されました。

基本的な使い方

bash
# 大きなファイルの編集(1GiB超)
# 修正後: メモリ効率が改善され、クラッシュが発生しにくくなった

# ファイルサイズを確認する
ls -lh large-file.txt
du -sh large-file.txt

# 1GiB を超えるファイルの例
# - 大規模なデータセット (CSV, JSON)
# - ログファイル
# - バイナリファイルを誤ってテキストとして編集しようとした場合

実践例

大きなファイルの編集戦略

bash
# 1GiB以上のファイルを編集する場合のベストプラクティス

# 方法1: ファイルを分割して処理する
split -l 100000 large-file.txt split_
# split_aa, split_ab, ... に分割される
# 各ファイルを個別に編集する

# 方法2: 特定の行のみを編集する
# Editツールで対象箇所のみを指定する
# "line 500から600のみを編集してください"

# 方法3: sedやawkで特定の変換を行う
sed -i 's/old_value/new_value/g' large-file.txt

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

bash
# Claude Code のメモリ使用量を監視
# macOS
watch -n 1 "ps -o rss= -p $(pgrep -f claude) | awk '{print \$1/1024\" MB\"}'"

# Linux
watch -n 1 "cat /proc/$(pgrep -f claude)/status | grep VmRSS"

# 1GiB超のファイルを扱う前に利用可能メモリを確認
free -h  # Linux
vm_stat | grep "Pages free"  # macOS

大きなファイルへの対処法

bash
# 大きなJSONファイルを編集する場合
# 方法: jqで必要な部分のみ抽出してから編集
jq '.items[0:1000]' huge-file.json > manageable-subset.json
# subset.json を編集した後、元のファイルにマージ

# 大きなCSVを編集する場合
head -1000 huge-file.csv > sample.csv  # ヘッダー+1000行
# sample.csv で確認・編集してから全体に適用

注意点

  • 1GiBを超えるファイルの編集は修正後も大量のメモリを使用します。十分なRAMがあることを確認してください
  • テキストファイルの場合、通常1GiBを超えることは稀です。バイナリファイルを誤ってEditツールで処理しないよう注意してください
  • 大規模ファイルの処理には、ファイル分割や専用ツール(sed、awk、perl)の使用を推奨します
  • この修正は「クラッシュしなくなった」であり、「超大規模ファイルを快適に編集できる」とは異なります

関連情報