Admin

lundi 29 août 2011

AS3 : Arrondi et Cie !

De nombreux articles sur la toile abordent les optimisations que l'on peut mettre en place en AS3 pour remplacer avantageusement certaines fonctions, comme certaines méthodes de la classe Math, par des équivalent plus rapides.

Concernant les maths, les points abordés sont souvent autour du floor() et du ceil(), de la multiplication et division de puissances de 2, et du modulo.

Mais rares sont les articles qui parlent de l'arrondi, à savoir le Math.round();

Voici donc ma petite contribution.

Le but : remplacer le Math.round() natif par un équivalent plus rapide tout en conservant sont comportement.

Deux cas se présentent :

- nombres positifs :

Ici trois solutions existent, elles font toutes la même chose et dans le même temps (les opérateurs binaires ne sont qu'à peine 1% plus rapide, autant dire que l'augmentation de perfs est négligeable).

  • solution 1 : var foo1:int = int(value + 0.5);
  • solution 2 : var foo2:int = value + 0.5 >> 0;
  • solution 3 : var foo3:int = value + 0.5 | 0; (ma préférée, que j'abrège en value+.5|0)

Comparons les perfs (10 000 000 itérations):

  • Math.round() natif : 358.2ms
  • solution 1, 2 ou 3 : 25.6ms

On obtient donc une fonction presque 14 fois plus rapide que le Math.round() natif.

- nombre négatifs (et positifs, le vrai équivalent au Math.round() en somme):

Ici aussi trois solutions existent, elles font toutes la même chose et dans le même temps (les opérateurs binaires ne sont qu'à peine 1% plus rapide, autant dire que l'augmentation de perf est négligeable).

  • solution 1 : var foo1:int = a>0 ? int(value + 0.5) : int(value - 0.5);
  • solution 2 : var foo2:int = a>0 ? value + 0.5 >> 0;
  • solution 3 : var foo3:int = a>0 ? value + 0.5 | 0; (ma préférée, que j'abrège en a>0?value+.5|0:value-.5|0)

Comparons les perfs (10 000 000 itérations):

  • Math.round() natif : 364.2ms
  • solution 1, 2 ou 3 : 139.6ms

On obtient donc une fonction d'arrondi exactement comme Math.round(), mais 2.6 fois plus rapide que le Math.round() natif.

Voila de quoi optimiser vos codes...

Mais attention, ces optimisations n'ont de sens que si elles sont utilisées dans une grosse boucle ou un traitement très complexe : pour un simple renderer, aucun intérêt, un Math.round() fera l'affaire, ou un toFixed() pour obtenir directement une String.

jeudi 4 juin 2009

Flash Catalyst : un premier tuto

Voici une première petite vidéo sur la prise en main de Adobe Flash Catalyst. Une seconde suivra bientôt...Je n'ai malheureusement pas beaucoup de temps en ce moment, mais promis, je vais poster plus les mois qui viennent !

Texte de remplacement


La suite au prochain épisode !

mardi 17 mars 2009

Vous prendrez bien une petite pause !

Il arrive parfois que l'on se demande pourquoi un bout de programme est lent. On recherche alors la ou les sources de cette lenteur puis on applique des solutions pour accélérer le tout. Mais vous est-il déjà arrivé l'inverse ? Un programme qui tourne plus vite que prévu...

Lire la suite

dimanche 18 janvier 2009

Performances : comparaison rapide entre ArrayCollection, Array et Vector

Lorsqu'on développe, on cherche généralement à se faciliter la vie, écrire le moins de code possible, tout en gardant un niveau de performances acceptable. La comparaison Array vs ArrayCollection montre bien celà.

Lire la suite

vendredi 28 novembre 2008

Flex SDK 3.2 and Flex Builder 3.0.2 released

Adobe has released stable update of Flex 3 SDK and FlexBuilder.

Flex SDK 3.2

* Numerous bug fixes including fixes provided by the community.
* Support for Flash Player 10.
* Support for Adobe AIR 1.5.
* Support for sandboxed and multi-versioned applications. Flex 3.2 adds the ability for an application developer to divide functionality between multiple sub-applications and allow them to interoperate. Applications can be developed using different versions of Flex (starting from 3.2), and can optionally operate in an untrusted environment which allows applications to safely load code provided by third parties. For more information, please refer to the related documentation.

Flex Builder 3.0.2 (including the data visualization components)

* Numerous bug fixes.
* Support for Flash Player 10.
* Support for Adobe AIR 1.5. The default settings for Adobe AIR 1.5 will enable Flash Player 10 functionality in Adobe AIR.
* Support for QTP 9.5 testing against IE7.  Previously only QTP 9.2 was supported.

Devnet: http://www.adobe.com/devnet/flex/articles/sdk32_fb302.html
download the Flex Builder update from here,
downloading nightly or stable builds from the Flex SDK Open Source site

Le tour de Flex

Bonjour à tous,

Le Tour de Flex est  une application AIR contenant de nombreux composants, notamment la librairie Efflex. c’est une application AIR pour explorer les propriétés et ressources de Flex. On peut ainsi explorer le moteur des composants Adobe Flex, Adobe AIR et l’intégration de données. Il est aussi possible d’explorer des composants tiers, des effets, des skins et bien plus encore.

C’est donc une application intéressante pour nos développement. Notons que l’application est également disponible sous forme de plugin Eclipse.

tour de flex

Pour plus d’information, rendez-vous sur : http://flex.org/tour

source : flex-info.fr

dimanche 28 septembre 2008

Enterprise IDE Plugin for Flex Builder

Lorsque l'on envisage d'utiliser Flex et Cie dans un cadre professionnel, il est important d'avoir des outils adaptés. Un projet d'entreprise ne se gère pas comme un petit projet perso : en effet, quand le nombre de classes augmente, de modules, etc...on a vite fait de s'y perdre. Certes, Flex Builder est déjà un outil puissant, puisque basé sur Eclipse. Mais il peut vite s'avérer insuffisant pour un gros projet d'entreprise.

Lire la suite

lundi 4 août 2008

Flex/AIR : se former gratuitement en une semaine ?

Flex est en pleine extension ! En témoignent les stats de mon blogs, qui continuent de grimper. Nombreux sont les gens qui s'intéressent au développement Flex et AIR, et tout le monde ne peux pas se payer une formation. Heureusement, des tonnes de ressources existent pour vous aider.

Lire la suite

vendredi 18 juillet 2008

Flex 4 montre le bout de son nez

Gumbo, l'actuel nom de code de Flex 4, commence à montrer le bout de son nez. On peut trouver les dernières builds ici.

Lire la suite

mardi 15 juillet 2008

Une faille dans Flex 3

Adobe a publié hier une note sur une faille de sécurité dans Flex 3. Adobe considère ce problème comme important et recommande aux utilisateurs de mettre à jour leurs installations logicielles et site internet si nécessaire.

Lire la suite