Skip to content

原文(日本語に翻訳)

tree-sitterパーサーを定期的にリセットすることで、長時間セッション中のWASMメモリの無制限な増大を修正しました。また、Yoga WASMのリニアメモリが縮小されないことによる長時間セッションでのメモリ増大も修正しました。

原文(英語)

Fixed unbounded WASM memory growth during long sessions by periodically resetting the tree-sitter parser. Fixed unbounded memory growth during long-running sessions caused by Yoga WASM linear memory never shrinking.

概要

長時間セッション(数時間にわたる作業)において、WASMモジュールのメモリが際限なく増大する2つの問題が修正されました。1つはコードの構文解析に使用するtree-sitterパーサーのメモリリーク、もう1つはUIレイアウト計算に使用するYoga WASMのメモリが解放されない問題です。定期的なリセット処理が追加され、長時間の使用でもメモリ使用量が安定するようになります。

基本的な使い方

この修正は自動的に適用されます。特別な設定は不要です。

bash
# 長時間のセッションでも安定して動作するようになった
claude

# 数時間の作業を継続しても...
# - メモリ使用量が際限なく増大しない
# - パフォーマンスが劣化しにくくなった
# - システムのメモリ不足によるクラッシュが起きにくくなった

実践例

ユースケース1: 長時間のコードレビューセッション

大規模プロジェクトのレビューを数時間かけて行う場合。

bash
# 大規模プロジェクトで長時間作業
claude

# 多数のファイルを順次レビュー
> src/auth/login.ts のセキュリティをレビューして
> src/auth/register.ts のバリデーションを確認して
> src/api/users.ts のエンドポイントを分析して
# ... 数十ファイルを継続してレビュー ...

# 修正前: 長時間後にメモリ使用量が数GBに達することがあった
# 修正後: 定期的なリセットによりメモリ使用量が安定

ユースケース2: 継続的なリファクタリング作業

日をまたぐような長期的なリファクタリングセッション。

bash
# 長時間のリファクタリングセッション
claude

# 何時間にもわたる作業
> モジュールAをTypeScriptに移行して
> 移行後のテストを確認して
> 次はモジュールBを移行して
# ... 継続して作業 ...

# 修正後: メモリが安定し、長時間後も快適に作業できる

注意点

  • この修正はtree-sitter(コード構文解析)とYoga(UIレイアウト)の両方のWASMコンポーネントに適用されます。
  • tree-sitterパーサーの定期リセットは、キャッシュされた構文解析結果もリセットされる可能性がありますが、機能への影響はありません。
  • 関連する修正として、staleなYogaレイアウト参照による潜在的なレンダリング問題も修正されました。
  • 非常に長いセッション(数時間以上)でパフォーマンス劣化を経験していたユーザーに特に効果があります。
  • メモリ使用量の増大が激しい場合は、定期的にセッションを再起動することも依然として有効です。

関連情報