


Verwenden von ES6 zur Lösung des Speicherverlustproblems durch WeakMap (ausführliches Tutorial)
Dieser Artikel stellt hauptsächlich die detaillierte Erklärung vor, wie ES6 das Speicherverlustproblem durch WeakMap löst. Jetzt teile ich es mit Ihnen und gebe es als Referenz.
1. Map
1. Definieren Sie
Map-Objekt zum Speichern von Schlüssel-Wert-Paaren , ähnlich Bei Datenstrukturwörterbüchern; im Gegensatz zu herkömmlichen Objekten, die nur Zeichenfolgen als Schlüssel verwenden können, können Kartenobjekte jeden Wert als Schlüssel verwenden.
2. Syntax
new Map([iterable])
Attribut
Größe: Gibt die Anzahl der Schlüssel-Wert-Paare zurück.
Operationsmethode
set(key, value): Den Wert des Schlüssels key auf value setzen (hinzufügen/aktualisieren) und das Map-Objekt zurückgeben.
get(key): Liest den Wert des Schlüssels key, wenn nicht, gib undefiniert zurück.
has(key): Bestimmen Sie, ob ein Schlüssel-Wert-Paar in einem Map-Objekt vorhanden ist, und geben Sie true/false zurück.
delete(key): Löscht ein Schlüssel-Wert-Paar und gibt true/false zurück.
clear(): Löscht alle Schlüssel-Wert-Paare im Map-Objekt.
Traversal-Methode
keys(): Gibt das Iterator-Objekt des Schlüsselnamens zurück.
values(): Gibt das Iterator-Objekt des Schlüsselwerts zurück.
entries(): Gibt ein Iterator-Objekt aus Schlüssel-Wert-Paaren zurück.
forEach((value, key, map) => {}): Durchläuft alle Schlüssel-Wert-Paare des Map-Objekts.
3. Beispiel
Operationsmethode
let m = new Map([ ['foo', 11], ['bar', 22] ]); m.set('mazey', 322) .set('mazey', 413); console.log(m); // {"foo" => 11, "bar" => 22, "mazey" => 413} console.log(m.has('mazey')); // true m.delete('mazey'); console.log(m.has('mazey')); // false m.clear(); console.log(m); // {}
Traversal-Methode
let m = new Map([ ['foo', 11], ['bar', 22], ['mazey', 413] ]); console.log(m); // {"foo" => 11, "bar" => 22, "mazey" => 413} console.log(m.keys()); // MapIterator {"foo", "bar", "mazey"} console.log(m.values()); // MapIterator {11, 22, 413} console.log(m.entries()); // MapIterator {"foo" => 11, "bar" => 22, "mazey" => 413} m.forEach((value, key, map) => { console.log("键:%s,值:%s", key, value); }); // 键:foo,值:11 // 键:bar,值:22 // 键:mazey,值:413
2. WeakMap
Definition
Im Gegensatz zu Map muss sein Schlüssel ein Objekt sein Der Schlüssel ist eine schwache Referenz und der Speicher wird automatisch freigegeben, nachdem das Schlüsselobjekt verschwindet.
2. Syntax
new WeakMap([iterable])
Methode
set(key, value): Schlüssel festlegen (neu/aktualisieren). Der Wert des Schlüssels ist value und es wird ein WeakMap-Objekt zurückgegeben.
get(key): Lesen Sie den Wert des Schlüssels key, wenn nicht, geben Sie undefiniert zurück.
has(key): Bestimmen Sie, ob ein Schlüssel-Wert-Paar in einem WeakMap-Objekt vorhanden ist, und geben Sie true/false zurück.
delete(key): Löscht ein Schlüssel-Wert-Paar und gibt true/false zurück.
Hinweis
Aufgrund des speziellen Garbage-Collection-Mechanismus von WeakMap gibt es keine clear()-Methode.
3. Beispiel
let obj = { foo: 11 }; let wm = new WeakMap(); wm.set(obj, 413322); console.log(wm); // {{…} => 413322} console.log(wm.has(obj)); // true
3. Lösung des Speicherleckproblems durch WeakMap
Wann Wenn das Dom-Objekt Ereignisse bindet und der Speicher nach dem Verschwinden des Dom-Objekts nicht rechtzeitig freigegeben (auf Null gesetzt) wird, bleibt es immer im Speicher vorhanden.
Die Verwendung von WeakMap zum Speichern von Dom-Objekten verursacht keine derartigen Probleme, da der JS-Garbage-Collection-Mechanismus nach dem Verschwinden des Dom-Objekts automatisch den von ihm belegten Speicher freigibt.
<button type="button" id="btn">按钮</button> <script> let wm = new WeakMap(); let btn = document.querySelector('#btn'); wm.set(btn, {count: 0}); btn.addEventListener('click', () => { let v = wm.get(btn); v.count++; console.log(wm.get(btn).count); }); // 1 2 3 4 5... </script>
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
Beispiel für Vue in Kombination mit Echarts, um einen Klick-Hervorhebungseffekt zu erzielen
Vue-Methode zum Abrufen der aktuell aktivierten Route
Detaillierte Erläuterung des Echarts-Maus-Overlays mit Hervorhebung von Knoten- und Beziehungsnamen
Das obige ist der detaillierte Inhalt vonVerwenden von ES6 zur Lösung des Speicherverlustproblems durch WeakMap (ausführliches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Da sich die Smartphone-Technologie ständig weiterentwickelt, spielen Mobiltelefone eine immer wichtigere Rolle in unserem täglichen Leben. Als Flaggschiff-Telefon mit Schwerpunkt auf Spieleleistung erfreut sich das Black Shark-Telefon bei Spielern großer Beliebtheit. Manchmal sind wir jedoch auch mit der Situation konfrontiert, dass das Black Shark-Telefon nicht eingeschaltet werden kann. Zu diesem Zeitpunkt müssen wir einige Maßnahmen ergreifen, um dieses Problem zu lösen. Als Nächstes geben wir Ihnen fünf Tipps, wie Sie das Problem lösen können, dass sich das Black Shark-Telefon nicht einschaltet: Schritt 1: Überprüfen Sie zunächst die Akkuleistung. Stellen Sie zunächst sicher, dass Ihr Black Shark-Telefon über genügend Strom verfügt. Möglicherweise ist der Akku des Telefons leer

Bei mechanischen Festplatten oder SATA-Solid-State-Laufwerken werden Sie die erhöhte Software-Laufgeschwindigkeit spüren. Wenn es sich um eine NVME-Festplatte handelt, spüren Sie sie möglicherweise nicht. 1. Importieren Sie die Registrierung in den Desktop und erstellen Sie ein neues Textdokument, kopieren Sie den folgenden Inhalt, fügen Sie ihn ein, speichern Sie ihn als 1.reg, klicken Sie dann mit der rechten Maustaste, um den Computer zusammenzuführen und neu zu starten. WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement]"DisablePagingExecutive"=d

Kürzlich hat Xiaomi mit dem Xiaomi 14Pro ein leistungsstarkes High-End-Smartphone herausgebracht, das nicht nur über ein stilvolles Design verfügt, sondern auch über interne und externe schwarze Technologie verfügt. Das Telefon verfügt über Spitzenleistung und hervorragende Multitasking-Fähigkeiten, sodass Benutzer ein schnelles und reibungsloses Mobiltelefonerlebnis genießen können. Die Leistung wird jedoch auch vom Speicher beeinflusst. Viele Benutzer möchten wissen, wie sie die Speichernutzung des Xiaomi 14Pro überprüfen können. Wie überprüfe ich die Speichernutzung auf dem Xiaomi Mi 14Pro? Einführung in die Überprüfung der Speichernutzung des Xiaomi 14Pro. Öffnen Sie die Schaltfläche [Anwendungsverwaltung] in den [Einstellungen] des Xiaomi 14Pro-Telefons. Um die Liste aller installierten Apps anzuzeigen, durchsuchen Sie die Liste und suchen Sie die App, die Sie anzeigen möchten. Klicken Sie darauf, um die Seite mit den App-Details aufzurufen. Auf der Seite mit den Bewerbungsdetails

Durch die kontinuierliche Entwicklung der sozialen Medien ist Xiaohongshu zu einer Plattform für immer mehr junge Menschen geworden, auf der sie ihr Leben teilen und schöne Dinge entdecken können. Viele Benutzer haben beim Posten von Bildern Probleme mit der automatischen Speicherung. Wie kann man dieses Problem lösen? 1. Wie kann das Problem des automatischen Speicherns von Bildern beim Veröffentlichen auf Xiaohongshu gelöst werden? 1. Cache leeren Zuerst können wir versuchen, die Cache-Daten von Xiaohongshu zu löschen. Die Schritte sind wie folgt: (1) Öffnen Sie Xiaohongshu und klicken Sie auf die Schaltfläche „Mein“ in der unteren rechten Ecke. (2) Suchen Sie auf der persönlichen Center-Seite nach „Einstellungen“ und klicken Sie darauf. (3) Scrollen Sie nach unten und suchen Sie nach „; Option „Cache löschen“. Klicken Sie auf „OK“. Nachdem Sie den Cache geleert haben, geben Sie Xiaohongshu erneut ein und versuchen Sie, Bilder zu posten, um zu sehen, ob das Problem mit dem automatischen Speichern behoben ist. 2. Aktualisieren Sie die Xiaohongshu-Version, um sicherzustellen, dass Ihr Xiaohongshu

Laut Nachrichten dieser Website vom 3. September berichteten die koreanischen Medien etnews gestern (Ortszeit), dass die „HBM-ähnlichen“ mobilen Speicherprodukte mit Stapelstruktur von Samsung Electronics und SK Hynix nach 2026 kommerzialisiert werden. Quellen zufolge betrachten die beiden koreanischen Speichergiganten gestapelten mobilen Speicher als wichtige zukünftige Einnahmequelle und planen, den „HBM-ähnlichen Speicher“ auf Smartphones, Tablets und Laptops auszudehnen, um End-Side-KI mit Strom zu versorgen. Früheren Berichten auf dieser Website zufolge heißt das Produkt von Samsung Electronics LPWide I/O-Speicher und SK Hynix nennt diese Technologie VFO. Die beiden Unternehmen haben ungefähr den gleichen technischen Weg gewählt, nämlich die Kombination von Fan-Out-Verpackungen und vertikalen Kanälen. Der LPWide I/O-Speicher von Samsung Electronics hat eine Bitbreite von 512

Dem Bericht zufolge sagte Dae Woo Kim, Geschäftsführer von Samsung Electronics, dass Samsung Electronics auf der Jahrestagung 2024 der Korean Microelectronics and Packaging Society die Verifizierung der 16-schichtigen Hybrid-Bonding-HBM-Speichertechnologie abschließen werde. Es wird berichtet, dass diese Technologie die technische Verifizierung bestanden hat. In dem Bericht heißt es außerdem, dass diese technische Überprüfung den Grundstein für die Entwicklung des Speichermarktes in den nächsten Jahren legen werde. DaeWooKim sagte, dass Samsung Electronics erfolgreich einen 16-schichtigen gestapelten HBM3-Speicher auf Basis der Hybrid-Bonding-Technologie hergestellt hat. Das Speichermuster funktioniert in Zukunft normal für die Massenproduktion von HBM4-Speicher. ▲Bildquelle TheElec, wie unten: Im Vergleich zum bestehenden Bonding-Prozess müssen beim Hybrid-Bonding keine Unebenheiten zwischen den DRAM-Speicherschichten hinzugefügt werden, sondern es werden die oberen und unteren Schichten direkt mit Kupfer verbunden.

Diese Website berichtete am 21. März, dass Micron nach der Veröffentlichung seines vierteljährlichen Finanzberichts eine Telefonkonferenz abgehalten habe. Sanjay Mehrotra, CEO von Micron, sagte auf der Konferenz, dass HBM im Vergleich zu herkömmlichem Speicher deutlich mehr Wafer verbraucht. Micron sagte, dass der derzeit fortschrittlichste HBM3E-Speicher bei der Produktion derselben Kapazität auf demselben Knoten dreimal mehr Wafer verbraucht als Standard-DDR5, und es wird erwartet, dass HBM4 dieses Verhältnis in Zukunft weiter erhöhen wird, wenn die Leistung verbessert und die Verpackungskomplexität zunimmt . Unter Bezugnahme auf frühere Berichte auf dieser Website ist diese hohe Quote teilweise auf die niedrige Ertragsrate von HBM zurückzuführen. HBM-Speicher ist mit mehrschichtigen DRAM-Speicher-TSV-Verbindungen gestapelt. Ein Problem mit einer Schicht bedeutet, dass die gesamte

Laut Nachrichten dieser Website vom 6. Mai hat Lexar den Übertaktungsspeicher der Ares Wings of War-Serie DDR57600CL36 auf den Markt gebracht. Das 16GBx2-Set wird am 7. Mai um 0:00 Uhr gegen eine Anzahlung von 50 Yuan im Vorverkauf erhältlich sein 1.299 Yuan. Der Lexar Wings of War-Speicher verwendet Hynix A-Die-Speicherchips, unterstützt Intel In Bezug auf die Wärmeableitung ist dieses Speicherset mit einer 1,8 mm dicken Wärmeableitungsweste aus Vollaluminium ausgestattet und mit dem exklusiven wärmeleitenden Silikonfettpad von PMIC ausgestattet. Der Speicher verwendet 8 hochhelle LED-Perlen und unterstützt 13 RGB-Beleuchtungsmodi.
