Beaucoup de canvas, ou peu c'est mieux?

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Jean Nadon
Messages : 9
Enregistré le : 11 janv. 2021, 04:11

Beaucoup de canvas, ou peu c'est mieux?

Message par Jean Nadon » 21 janv. 2021, 02:07

Bonjour,
Je développe une animation avec plus de 30 canvas, chacun contient le dessin d'une bille.
Compte-tenu que les billes ne s'empilent jamais l'une sur l'autre, je pourrais aussi faire juste un canvas et y dessiner 30 billes.
Le nombre de modification restera le même ,par exemple si 10 billes bougent au lieu de modifier 10 canvas , je vais modifier
un canvas 10 fois.
Est-ce que ce serait plus performant au niveau de l'exécution , sachant qu'il y a un rafraichissement chaque 18 millisecondes?

Jean Nadon
Messages : 9
Enregistré le : 11 janv. 2021, 04:11

Re: Beaucoup de canvas, ou peu c'est mieux?

Message par Jean Nadon » 26 janv. 2021, 14:57

N'ayant pas de réponse, je vais laisser mes 30 canvas tel quel. Je pourrais modifier éventuellement mais la différence serait probablement minime. De toute façon je ne sais pas comment comparer les deux vitesses d'exécution.
Merci et bonne journée

Avatar du membre
webmaster
Administrateur du site
Messages : 396
Enregistré le : 28 févr. 2017, 15:19

Re: Beaucoup de canvas, ou peu c'est mieux?

Message par webmaster » 29 janv. 2021, 11:10

Bonjour,

Il est possible de mesurer le temps d'exécution d'un script avec l'objet console et la fonction time();
https://www.toutjavascript.com/referenc ... e.time.php
Un exemple est présenté dans la fiche.

30 canvas sera sans doute plus lent qu'un seul. Mais le choix de revoir tout le code dépend de la mesure initiale.
En dessous de quelques centaines de millisecondes, le changement sera imperceptible.
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Jean Nadon
Messages : 9
Enregistré le : 11 janv. 2021, 04:11

Re: Beaucoup de canvas, ou peu c'est mieux?

Message par Jean Nadon » 30 janv. 2021, 21:57

Merci pour le console.time, je ne connaissais pas.
La moyenne de traitement pour une centaine de séquences qui bougent 10 billes sur 10 canvas était de .622 ms
J'ai ensuite modifié mon code en affichant toutes les billes sur un seul canvas.
La moyenne de traitement pour une centaine de séquences qui bouge 10 billes sur un canvas était de .819 ms
Conclusion , peu c'est pas mieux, c'est même pire.

Répondre