-->

Le circuit de course, modèle du Flash Player ? (II)

|

Comme nous l’avons vu avec le post précédent, Ted Patrick lancait l’idée du circuit de course comme modèle d’éxécution du Flash Player, en 2005. Mais avec la sortie de la version 9 du FlashPlayer, et l’intégration d’une seconde machine virtuelle pour gérer l’AS3 (AVM2), le modèle s’est transformer en « circuit de course élastique », comme nous l’explique Sean Christmann, dans un post plus récent du 18 avril 2008 !

Le schéma global est gardé, il est juste définit plus précisement à l’intérieur de la frame. Seanc Christmann définit ce qu’il appel un Marshall, qui est responsable de découper des tranches de temps, ces tranches de temps n’étant pas la même chose que le framerate.

Durant ces tranches, 5 processus peuvent être exécutés les uns à la suite des autres :

  • Les évènements du Player
  • Le code concerné par les évènements du player est exécuté
  • Les évènement du rendu graphique
  • Le code concerné par les évènements du rendui est exécuté
  • Le rendu est exécuté

Je vous laisse lire le reste de son explication, mais vous fais part de ces conclusions :

  1. L’elasticité est appliquée lorsque les temps de calcul ou de rendu sont plus ou moins long, c’est le « Marshal » qui gère le nombre de tranches pour gérer un framerate équivalent au plus près à celui définit lors de la compilation.
  2. Le framerate réel d’un swf ne dépassera jamais le taux du « Marshal » définit pour l’instance du player. Vous pouvez définir un framerate à 120fps, si votre système ne peut pas dépasser les 50 tranches, il ne dépassera pas les 50 rendus….
  3. Le code peut être executé plus fréquemment que le framerate définit à la compilation. Un swf compilé à 1fps executera un Timer ou MouseEvent à chaque tranche, alors que le rendu final ne se fera qu’à la dernière tranche.
  4. Compiler un framerate qui n’est pas un multiple de nombre total de tranches par seconde de votre plateforme donnera un rendu irrégulier. Par exemple, si vous avez un fps de 20 et que vous compilez sur une plateforme qui exécute 50 tranches par secondes, alors le player fera un rendu de 2 frames toutes les 5 tranches et suivra un taux de tranches/fps oscillant 3-2-3-2-3-2.

via craftymind.com

Laisser un commentaire

Champs Requis *.


Seo