Il y a quelques jours, je suis tombé sur un article très intéressant sur le blog de businessintelligence.me, qui a crée un outil permettant de mesurer les performances de certaines portions de code en ActionScript 3 (AS3). Par exemple, il compare différentes manières d'itérer sur un tableau. Exemple simple, dans une boucle for(), si vous itérez sur un Number ou sur un int, cela peut être deux fois plus long. Le test comporte pour l'instant 9 tests différents de code ActionScript, en vous donnant le code des différents tests effectués.
ActionScript 3 Performance Tester
Parmi ces tests, vous pourrez retrouver comment:
- Incrémenter une variable (i++, i = i+1, i +=1)
- Division (i/2, i*0.5, i<<1)
- Parcours de structures (Array, Object, Dictionary)
- Boucles (for, while, …)
- … et même vos propres morceaux de code (beta)
Le plus intéressant des tests reste encore la comparaison entre le parcours d'un Array et celui d'un Vector. Le type Vector est une nouveauté apportée par Flash Player 10, qui correspond au type Vector en Java. C'est-à-dire qu'il vous permet de typer un Array. Le résultat est flagrant, le parcours d'un Vector est 20 fois plus rapide que celui d'un Array. Il y a peu de raisons qui pourraient vous obliger à utiliser un Array au lieu d'un Vector, considérant ces performances (à part si vous faîtes une hash map, un tableau fourre-tout avec différents types).

Autres Tutoriaux Flex liés:
- Adobe Alchemy – Comparaison de performances sur algorithme de tri ActionScript / C++
- Flex ActionScript – Optimiser votre code AS3
- Flex ActionScript – Copier un Array AS3 (tableau) le plus rapidement possible
- Flex ActionScript – Array et Object en ActionScript 3
- Comparaison de performances entre rendu Vectoriel et Bitmap avec Flash Player (cacheAsBitmap)









et qu'en est-il de la sérialisation vers java du dit Vector ?
genre dans blazeDS ?
Jamais essayé, mais certains ont déjà essayé (cf. Google)
Fabien