Problème de charge CPU

cs_olliesound Messages postés 41 Date d'inscription lundi 22 décembre 2008 Statut Membre Dernière intervention 16 décembre 2009 - 26 oct. 2009 à 16:48
cs_olliesound Messages postés 41 Date d'inscription lundi 22 décembre 2008 Statut Membre Dernière intervention 16 décembre 2009 - 27 oct. 2009 à 14:08
Bonjour à tous et merci d'avance pour l'aide que vous pourrez m'apporter : Je réalise dans le cadre professionnel une animation destinée à tourner sur des PC moyen de gamme type 2go de ram et un intel core2duo à 2.2ghz:

L'animation est constituée:
- d'un fond (une vidéo retravaillée avec adobe media encoder, durant 5 secondes, elle pèse 6mo et est chargée à l'aide d'un loader. Testée seule elle prend 15% de charge CPU).

- d'un coverflow géré en XML avec angle d'inclinaison donné au images (des png pesant 45ko chacun et au nombre de 7) et gestion de l'alpha selon leur éloignement du centre, testé seul :
6% de charge CPU

- enfin d'un personnage (mascotte) et de boutons animés par interpolations classiques (le minimum possible) qui prend 5% de charge CPU.

Le problème est que quand je lance tout ce beau monde ensemble, alors que théoriquement on devrait être aux alentours des 25% je suis à 55% de charge et d'autres services doivent compléter l'animation flash. Du coup la charge même si il n'y a pas spécialement de lags, est beaucoup trop élevée d'où ma question :
Que puis je faire pour y remédier? est ce un problème de "couches" au niveau du flash? un oubli de ma part?

Je précise que cette animation n'ai pas prévu pour le web simplement pour tourner sur un PC de base.

4 réponses

crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
26 oct. 2009 à 22:24
salut,

Il est normal de ne pas retrouver le résultat 25%, les animations étant toute affiché en même temps. Et 55% c'est très loin d'être dramatique. Il faut juste se méfier de l'utilisation intensive des interpolations et des alpha.
Après on peut toujours améliorer son code, il suffit de mettre le nez dedans et on améliore forcément . Sinon si tu es en as2, le passage à l'as3 est vivement recommandé question vitesse.

niveau code, ce sont des petites choses qui paraissent bête, mais il ne faut pas par exemple créer de variable dans une boucle (enfin faut éviter). Pour animer le EnterFrame, c'est bien, mais parfois ça n'a pas forcément de réelle utilité et on peut utiliser des méthodes beaucoup moins gourmandes pour un même résultat... etc il y en a plein comme ça.
0
cs_olliesound Messages postés 41 Date d'inscription lundi 22 décembre 2008 Statut Membre Dernière intervention 16 décembre 2009
27 oct. 2009 à 09:06
D'abord merci pour ta réponse !

Effectivement ce n'est pas dramatique en soi mais le problème c'est qu'il y a une application derrière qui consomme aussi du CPU donc les 55% de charge ce n'est même pas le résultat final.

Pour le reste je suis en AS3, il n y a que très peu d'interpolations (elles sont de type "classiques") et le peu de code présent consiste en une succession de loaders. Je précise qu'on m'a refilé le bébé et que je dois grosso merdo faire perdre 20% à l'animation... j'ai réussi à passer à 35% mais l'objectif est de 20% de charge maxi... Pour moi le problème vient de la vidéo, je l'ai convertie en SWF, elle fait 5 secondes et ne pèse que 6mo et est appelée dans un loader... j'ai fait différents tests avec ou sans la mascotte animée, avec ou sans le coverflow, aves ou sans la vidéo : résultats : sans vidéo et avec tout le reste je ne suis qu'à 8% de charge CPU et si je lance en plus la video je passe à 53%... Franchement je vois pas par ou prendre le problème....
0
crackter Messages postés 401 Date d'inscription mercredi 12 novembre 2003 Statut Membre Dernière intervention 31 janvier 2010
27 oct. 2009 à 12:49
le décodage du flv/f4v est de la même trampe que le h264, cela demande forcément beaucoup de ressources en ce qui concerne son décodage. Après tu peux toujours tenter, s'il n'y a pas besoin que la résolution de la vidéo soit très fine, encoder la vidéo moitié moindre et l'affiche en scale 200%, tu gagnera en décodage. L'histoire des images clés aussi influe également sur le calcul du décodage, moins il y en a, plus la machine devra interpréter les images intermédiaires.

Il doit exister également des petites applis afin de limiter la charge de certain programme (un peu comme fait un portable avec l'économie d'énergie), si vraiment tu dois utiliser flash. Mais il faut savoir que la charge calculé windows est simplement une valeur instantanée, un jeu tournant à 100% par exemple (comme quasi tous), n'empêche aucunement d'utiliser des services en arrière plan, même gourmand eux aussi. C'est seulement en test réel que tu saura si oui ou non tu dois baisser le nombre de calcul traité (ou plutôt optimiser ton code).
0
cs_olliesound Messages postés 41 Date d'inscription lundi 22 décembre 2008 Statut Membre Dernière intervention 16 décembre 2009
27 oct. 2009 à 14:08
Bon okay je tente de ré-encoder en suivant tes conseils. Je reviendrai poster mes résultats... Et merci à toi
0
Rejoignez-nous