概要
WeakMap は、Dart パッケージで、キーが弱参照であるマップを実装しており、他の参照が存在しない場合にキーのオブジェクトをガベージコレクション対象にすることができます。メモリリークを防ぐことで効率的なメモリ管理を可能にします。WeakContainer は、オブジェクトの同一性チェックを提供し、以前と同じインスタンスであることを保証します。このパッケージは、弱参照を使用したキャッシュ関数によるメモイゼーションをサポートしており、一時的なデータ保存に最適です。長期間実行されるアプリケーションにおけるパフォーマンスと安全性を考慮して設計されています。
用途
- 自動クリーンアップ付きのメモ化
- リークなしでオブジェクトの識別子を追跡
- 一時的なオブジェクトに関連する結果をキャッシュする
- コールバックでのメモリリークを回避する
- インスタンスごとにメタデータを保存する
- 一時的な状態管理
主な機能
- 弱参照キー
- ガーベージコレクト可能なエントリ
- IDベースのオブジェクトチェック
- 組み込みのメモ化ユーティリティ
- クロスプラットフォーム対応
- 軽量で高速
適している対象
- 頻繁にオブジェクトを作成する長期実行アプリ
- メモリに敏感なアプリケーション
- インスタンス固有のデータを必要とするプラグイン
- 開発者が強い参照サイクルを回避する
- 一時的なデータストレージを必要とするユースケース
- 高性能キャッシング
注意事項
- キーは予期せず収集される可能性があります
- 永続データには適していません
- 直接的な反復処理やサイズのアクセスなし
- オブジェクトキーによるストレージに制限
- 非同期コンテキストでは慎重な取り扱いが必要です
- 一時的または短期的なオブジェクトと併用するのが最適です