news

Alchemy, juste un outil de portage pour l’AVM2

Mateusz Małczak démontre une fois de plus qu’Alchemy n’est pas la panacée du portage de librairies C/C++ en bytecode optimisé pour l’AVM2. Il a porté SFFE (un parseur de formules mathématiques pour sa librairie sfXaoS) en reprenant mes expérimentations sur le double-buffering avec Alchemy pour l’affichage. Une fois de plus, les résultats ne sont pas convaincants en termes de performances. Ils confirment l’intuition que j’avais eu à l’époque: Quand les 12 nouveaux opcodes du Flash Player 10 seront prise en charge par le compilateur du Flex SDK, Alchemy ne sera plus qu’un simple outil de portage pour l’AVM2, ni plus ni moins.

Si vous vous passionnez pour Alchemy, voici un blog à bookmarker. Mateusz proposera bientôt un tutorial sur GlueGen, générateur de code ActionScript à partir d’un wrapper C/C++, malheureusement encore non documenté sur le labs.

Share on Twitter

Discussion

4 comments for “Alchemy, juste un outil de portage pour l’AVM2”

  1. Bonjour Francis,

    J’ai l’impression qu’il y a eu un malentendu autour d’Alchemy. De ce que j’en ai compris (je n’ai pas encore mis le nez dedans), c’est effectivement un outil de portage C++ vers bytecode AVM2, et c’est bien là tout son intérêt : pouvoir profiter dans les applications flash de tout l’héritage de code C/C++ qu’on peut trouver partout, dans le monde de l’open source comme au sein de l’entreprise.

    C’est vrai qu’on aurait pu espérer un gain de performance via l’optimisation que permettent les nouveaux opcodes, mais amha cela aurait été un effet d’aubaine et non le but initial de cet outil.

    A titre personnel, je suis plus inquiet des premiers retours (pas très encourageants) en terme de portage qu’en terme de performance.

    Posted by david deraedtNo Gravatar | janvier 26, 2009, 10:42
  2. Hello David ! Je suis bien d’accord, mais…

    J’ai malheureusement l’impression que ce fameux malentendu a été volontairement entretenu par Adobe, et utilisé (l’air de rien bien sûr) comme un argument marketing de poids pour la plateforme Flash en cette période de course à la puissance (Google Native Client, Unity 3D, Silverlight 2…).

    Pour rappel, petite citation du slogan qui a été ressassé pendant les showcases depuis un an: « Performance can be considerably faster than ActionScript 3.0 and anywhere from 2-10x slower than native C/C++ code »
    C’est ce slogan servi avec la démo de Quake (bidouillée en en Air) qui a marqué les esprits et je ne pense pas que cela soit si innocent… Je me trompe peut-être.

    Posted by Francis BourreNo Gravatar | janvier 27, 2009, 0:57
  3. Salut,
    en effet, je pense qu’ils ont beaucoup joué sur un effet d’annonces, peut être pour couvrir un peu les trop faibles avancées dans le flash player 10.

    Déjà savoir que Alchemy utilise des opcodes que le compilateur lui ne sait exploiter (et là ça devient dingue) me fait bondir. Comment comparer l’AS3 et le code importé du C alors qu’à cause de cela ce n’est pas comparable?

    Cela dit, à Adobe Max Milan, les officiels (non ingénieurs) ont plutôt insisté sur le grand bénéfice de réutilisation de librairies existantes.

    Donc peut être qu’ils ne sont pas tous correctement informés (et on sait que les évangélistes aiment bien relater des âneries parfois), ou qu’ils ont volontairement cherché à utiliser ceci comme argument commercial, et dans ce dernier cas, cela commence déjà à se retourner contre eux.

    Posted by Thomas PfeifferNo Gravatar | janvier 27, 2009, 14:59
  4. Francis , pour ma part je m’étais amusé à récupérer l’algo de panotool a le porter en AS3, au final rien de bien concluant flash a du mal à compter (impossible de stitcher des images fisheye) il y’a un mois j’ai essayer Alchemy et après de longues heures à comprendre comment on pouvais porter une lib avec ce dernier j’ai réussi a sortir un SWC! mais quand j’ai vue le poids de ce dernier j’en ai pris peur puis j’ai quand même essayer de l’utiliser, l’a ce fut la révélation on peu stitcher une image ficheye mais certainement pas en un temps record ( à savoir que l’on peu facilement appeler un cgi sur le serveur pour faire la même opération).
    Conclusion oui si l’application dois être standalone (air) , ou si les calculs sont trop complexe, ca peu être utile.

    Posted by GOABONGANo Gravatar | janvier 27, 2009, 21:06

Post a comment

-->

Recent Comments