Übersicht
WeakMap ist ein Dart-Paket, das eine Karte mit schwach referenzierten Schlüsseln implementiert, sodass Schlüsselobjekte bei fehlenden weiteren Referenzen zur Garbage Collection freigegeben werden können. Es ermöglicht eine effiziente Speicherverwaltung und verhindert Speicherlecks. WeakContainer bietet Identitätsprüfungen für Objekte, um sicherzustellen, dass es sich um dieselbe Instanz handelt wie zuvor. Das Paket unterstützt die Memoisierung durch Cache-Funktionen unter Verwendung schwacher Referenzen, was ideal für temporäre Datenspeicherung ist. Für Leistung und Sicherheit in lang laufenden Anwendungen konzipiert.
Anwendungsfälle
- Memoisierung mit automatischer Bereinigung
- Objektidentität ohne Lecks verfolgen
- Caching von Ergebnissen, die an temporäre Objekte gebunden sind
- Vermeidung von Speicherleck in Callbacks
- Metadaten pro Instanz speichern
- Temporäre Zustandsverwaltung
Hauptmerkmale
- schwach referenzierte Schlüssel
- Abfall-sammelbare Einträge
- Identitätsbasierte Objektüberprüfung
- Eingebaute Memoisierungs-Utilities
- Plattformübergreifende Unterstützung
- Leicht und schnell
Geeignet für
- Langlaufende Apps mit häufiger Objekterstellung
- speicherempfindliche Anwendungen
- Plugins, die instanzspezifische Daten erfordern
- Entwickler vermeiden starke Referenzzyklen
- Anwendungsfälle, die ephemere Datenspeicherung erfordern
- Hochleistungs-Caching
Hinweise
- Schlüssel können unerwartet gesammelt werden
- Nicht geeignet für dauerhafte Daten
- Keine direkte Iteration oder Größenzugriff
- Beschränkt auf objektbasierte Speicherung
- Erfordert sorgfältige Behandlung in asynchronen Kontexten
- Am besten mit transienten oder kurzlebigen Objekten verwenden