As3 - Wie kann ein Array effizient gelöscht werden?
Habe ich gesucht, um einen array in ActionScript 3.
Irgendeine Methode empfehlen : array = [];
(Memory leak?)
Andere würden sagen : array.splice(0);
Wenn Sie alle anderen, bitte teilen.
Welches ist das effizienter?
Danke.
InformationsquelleAutor der Frage ALOToverflow | 2010-02-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
array.length = 0
oderarray.splice()
scheint zu funktionieren am besten für die Gesamtleistung.array.splice(0);
wird schneller alsarray.splice(array.length - 1, 1);
InformationsquelleAutor der Antwort Jason
Array mit 100 Elementen (benchmarks in ms, die untere die weniger Zeit benötigt):
InformationsquelleAutor der Antwort n4pgamer
Es gibt einen entscheidenden Unterschied zwischen array.pop() und array.splice(array.Länge - 1, 1), daß pop wird der Wert des Elements. Dies ist ideal für handy-Zwischenlagen beim Aufräumen ein array wie:
InformationsquelleAutor der Antwort gregoryb
Frage ich mich, warum Sie löschen wollen, um das Array in dieser Art und Weise? löschen alle Verweise auf das sehr Arrays zur Verfügung stellen für die garbage collection.
array = []
wird dies tun, wennarray
ist der einzige Verweis auf diearray
. wenn es nicht dann ist Sie vielleicht auch nicht sein sollte emtpying es (?)beachten Sie bitte auch, dass'Arrays akzeptieren Strings als Schlüssel. beide Spleiß und Länge arbeitet ausschließlich auf integer-Schlüssel, so dass Sie keine Auswirkungen auf String-Schlüssel.
btw.:
array.splice(array.length - 1, 1);
entsprichtarray.pop();
InformationsquelleAutor der Antwort back2dos
dies hat immer funktioniert ziemlich gut für mich, aber ich haven ' T hatte eine chance, um es durch den profiler noch
InformationsquelleAutor der Antwort chris