原文(日本語に翻訳)
メモリリークを修正しました:長期セッションで仮想スクローラーがメッセージリストの過去のコピーを数十個保持していた問題を修正しました。
原文(英語)
Fixed a memory leak where long sessions retained dozens of historical copies of the message list in the virtual scroller
概要
長時間にわたるClaude Codeのセッションで、仮想スクローラーコンポーネントがメッセージリストの過去のコピーを大量に保持し続けるというメモリリークが発生していました。このアップデートにより、不要になったメッセージリストのコピーが適切に解放されるようになり、長期セッションでのメモリ使用量が大幅に改善されました。
基本的な使い方
bash
# このバグ修正はユーザーが特別な操作をする必要はありません
# 長期セッションでのパフォーマンスが自動的に改善されます
# パフォーマンスが改善される状況:
# - 数時間にわたる長期セッション
# - 多数のツール呼び出しを含むセッション
# - 大量のメッセージを含む会話実践例
長期セッションのパフォーマンス監視
bash
# Claude Codeの実行中のメモリ使用量を確認(macOS)
# 修正前: 長期セッションでメモリが増え続ける
# 修正後: メモリ使用量が安定する
# プロセスIDを取得
CLAUDE_PID=$(pgrep -f "claude-code" | head -1)
# メモリ使用量を監視
while true; do
if [ -n "$CLAUDE_PID" ]; then
mem=$(ps -o rss= -p $CLAUDE_PID)
echo "$(date): Memory: ${mem}KB"
fi
sleep 30
done長期プロジェクトでの安定した使用
bash
# 大規模なコードベースを扱う長期セッション
# 修正により、長時間の作業でも安定したパフォーマンスが維持される
# セッション開始
claude
# 多数のファイルを分析する長期作業
# - ファイルの読み込み
# - コードの生成
# - テストの実行
# - デバッグ
# → メモリリーク修正により、これらの作業を通じてメモリ使用量が安定メモリ使用量の最適化設定
json
// .claude/settings.json
// メモリ最適化に関連する設定
{
"contextWindow": {
"maxTokens": 100000,
"compactThreshold": 0.8
}
}bash
# 長期セッションでのベストプラクティス
# 1. 定期的に /compact を使ってコンテキストを圧縮
/compact
# 2. 不要になったセッションは終了する
# Ctrl+D または exit
# 3. 非常に長い会話は --continue で再開する代わりに
# 新しいセッションを開始することも検討する
claude --continue # 前のセッションを継続パフォーマンステスト
bash
#!/bin/bash
# 長期セッションのパフォーマンステスト
echo "メモリ使用量の測定を開始します..."
# 初期メモリを記録
initial_mem=$(ps -o rss= -p $(pgrep -f claude) 2>/dev/null)
echo "初期メモリ: ${initial_mem}KB"
# 多数のタスクを実行(実際の長期使用をシミュレート)
for i in {1..50}; do
claude --print "ファイル$i.txt の内容を要約して" > /dev/null
done
# 最終メモリを確認
final_mem=$(ps -o rss= -p $(pgrep -f claude) 2>/dev/null)
echo "最終メモリ: ${final_mem}KB"
echo "差分: $((final_mem - initial_mem))KB"注意点
- このメモリリーク修正は、長期セッション(数時間以上)で特に効果が現れます
- 短期セッションではほとんど影響が感じられない場合があります
- メモリ使用量が過剰に増加していた場合は、このアップデートにより改善されます
- 依然としてメモリ使用量の問題が続く場合は、定期的な
/compactコマンドの使用を検討してください - 仮想スクローラーのメモリ管理が改善されましたが、他のメモリ使用要因は存在します