套件概覽
WeakMap 是一個 Dart 套件,實作了使用弱參考鍵的映射,當沒有其他參考存在時,允許對鍵物件進行垃圾回收。它透過防止記憶體洩漏來實現高效記憶體管理。WeakContainer 提供物件的身分檢查,確保它們與之前是同一個執行個體。該套件透過使用弱參考支援快取函數的備忘錄化,非常適合暫時性資料儲存。專為長時間執行的應用程式設計,兼具效能與安全性。
適用情境
- 帶自動清理的記憶化
- 追蹤物件身分而不洩漏
- 快取與暫時物件相關的結果
- 避免回呼中的記憶體洩漏
- 按實例儲存元資料
- 臨時狀態管理
主要特色
- 弱引用鍵
- 可垃圾回收的條目
- 基於身份的物件檢查
- 內建的 memoization 工具
- 跨平台支援
- 輕巧且快速
適合對象
- 長時間運行的應用程式,頻繁建立物件
- 記憶體敏感的應用程式
- 需要實例特定資料的外掛
- 開發人員避免強參考循環
- 需要臨時數據存儲的用例
- 高性能快取
使用建議
- 密鑰可能會意外收集
- 不適用於持久資料
- 無直接迭代或大小存取
- 限制為物件鍵儲存
- 在非同步上下文中需要謹慎處理
- 最佳搭配暫態或短生命週期物件使用