Die Visualisierung der Speichernutzung mit und ohne Verwendung von Generatoren kann helfen, die Effizienzvorteile zu verstehen. Nachfolgend finden Sie einen Vergleich der Speichernutzung in zwei Szenarien:
Angenommen, wir haben eine einfache Funktion, die ein Array von Zahlen von 0 bis 999.999 zurückgibt. Diese Funktion lädt alle Daten auf einmal in den Speicher.
Wenn die Funktion getNumbersArray aufgerufen wird:
| Memory Usage Without Generators | |------------------------------------------------------| | Start | * | | | ** | | | *** | | | **** | | | ***** | | | ****** | | | ******* | | ... | ******************************************| | End | ******************************************| |------------------------------------------------------|
Jetzt verwenden wir eine Generatorfunktion, um eine Zahl nach der anderen zu erhalten.
Wenn die Generatorfunktion numberGenerator aufgerufen wird:
| Memory Usage With Generators | |------------------------------------------------------| | Start | * | | | * | | | * | | | * | | | * | | | * | | | * | | ... | * | | End | * | |------------------------------------------------------|
Generatoren bieten erhebliche Vorteile bei der Speichereffizienz, insbesondere bei großen Datensätzen, indem sie jeweils ein Element liefern und während der gesamten Skriptausführung eine geringe Speichernutzung aufrechterhalten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3