Quali sono i pro e i contro dell'utilizzo di Vector.<>
anziché array
?Vector. <> Vs array
risposta
Come risultato di queste restrizioni, un vettore presenta due vantaggi principali rispetto a un'istanza Array i cui elementi sono tutti istanze di una sola classe:
- Rappresentazione: array accesso dell'elemento e l'iterazione è molto più veloce quando si utilizza un'istanza Vector rispetto a quando si utilizza una matrice.
- Tipo di protezione: in modalità rigorosa il compilatore può identificare errori di tipo di dati, ad esempio assegnare un valore del tipo di dati errato a un vettore o prevedere il tipo di dati errato durante la lettura di un valore da un vettore. Si noti, tuttavia, che quando si utilizza il metodo push() o il metodo unshift() per aggiungere valori a un vettore, i tipi di dati degli argomenti non vengono controllati in fase di compilazione ma vengono controllati in fase di esecuzione.
Grazie Arno! Questi sono solo i pro, ci sono anche alcuni contras? Per quanto riguarda le prestazioni migliori di Vector: alcune persone segnalano il contrario: vedere http://impossiblearts.com/blog/2008/06/18/fp10-vector-vs-array/comment-page-1/ e http://bugs.adobe.com/jira/browse/FP-1802 –
Sembra che le prestazioni potrebbero non essere il miglior punto vendita per i vettori al momento. Quindi, di nuovo, si dovrebbe essere già abituati al fatto che sia il framework di Flex che il flash player non sono privi di bug. –
I grandi contras sono secondo me molto nuovi, quindi un po 'buggy e non tutti hanno FP10. In questo test di Mike Chambers: http://www.mikechambers.com/blog/2008/08/19/using-vectors-in-actionscript-3-and-flash-player-10/ nel suo test non è un hugh differenza tra i 2 numeri. Se la tua applicazione non è pesantemente appesa a grandi liste, andrei con Array. – Arno
Pro: il vettore è più veloce della matrice - ad es. vedere questo: Faster JPEG Encoding with Flash Player 10
Contra: vettore richiede FP10, e secondo http://riastats.com/ circa il 20% degli utenti sta ancora utilizzando FP9
Al momento di questo commento, la versione non rilevata + lampeggia 9 orologi al 4% – ADB
non rilevati e lampeggia 9 orologio in poco meno del 5% oggi. –
Secondo flash player sito di penetrazione è un po 'più alto. Intorno al 85%
vettori sono più veloci. Sebbene per l'iterazione sequenziale the fastest thing seems to be linked-lists.
I vettori possono essere utili anche per le operazioni bitmap (controlla BitmapData.setVector, anche BitmapData.lock e unlock).
L'esempio di elenco collegato menzionato in precedenza nei commenti è scritto in modo errato anche se salta i nodi dispari e per questo solo itera la metà degli stessi dati. Non c'è da stupirsi che ottenga risultati così grandi, potrebbe essere più veloce con il codice corretto, ma non la stessa differenza di%. Il loop imposta current = current.next una volta troppo (sia nel ciclo che come condizione del ciclo) ogni iterazione che causa quel comportamento.
Come nota a margine, questo dovrebbe essere contrassegnato come flex4 flashplayer10. –