Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# canvas et consommation mémoire

Envoyé par : pitivier

Date : 07/02/2006 20:33

Bonjour à tous,

Je viens de faire un test avec l'élément canvas dans une page xul. Je me suis rendu compte que lorsque le canvas a une taille assez grande (3000*3000), la consommation mémoire est multipliée par 3 ou 4 (par rapport à une taille de 400*600) et le défilement avec l'ascenceur est très lent.

Je voudrais savoir si je peux y rémédier et comment.

Merci d'avance pour vos réponses.

# Re: canvas et consommation mémoire

Envoyé par : laurentj

Date : 08/02/2006 10:30

Je me suis rendu compte que lorsque le canvas a une taille assez grande (3000*3000), la consommation mémoire est multipliée par 3 ou 4 (par rapport à une taille de 400*600)

C'est un peu normal non ? Une image de 3000*3000 prend plus de place qu'une image de 400*600. Enfin pour moi, c'est tout à fait logique ;-) (te rend-tu compte que c'est tout de même au moins 2 fois plus gros que la taille des écrans classiques ?)

Je voudrais savoir si je peux y rémédier et comment.

envoi un patch à bugzilla.mozilla.org ;-)

Mais je doute que ce problème puisse être résolu par quel que moyen que ce soit, sinon à part augmenter ta ram vidéo et/ou ta ram centrale ;-)

# Re: canvas et consommation mémoire

Envoyé par : pitivier

Date : 08/02/2006 11:48

C'est un peu normal non ? Une image de 3000*3000 prend plus de place qu'une image de 400*600. Enfin pour moi, c'est tout à fait logique ;-) (te rend-tu compte que c'est tout de même au moins 2 fois plus gros que la taille des écrans classiques ?)

Je me doute, mais je m'interroge parceque j'ai fait une appli en java qui affiche un panneaux de 10000*10000 dans lequel je dessine plusieurs petites images (une centaine) ainsi que des rectangles, lignes, et la consommation en mémoire est moins gourmante et le défilement beaucoup plus fluide

J'ai également cherché une fonctionnalité pour dessiner du texte dans un canvas et je n'en ai pas trouvé (je pense qu'il n'y en a pas). Je voulais savoir si c'est bien une fonctionnalité manquante et si son implémentation est prévue.

# Re: canvas et consommation mémoire

Envoyé par : laurentj

Date : 08/02/2006 14:00

la consommation en mémoire est moins gourmante et le défilement beaucoup plus fluide

Ba fait du Java alors ;-)

Plus serieusement, faut savoir que l'affichage dans Gecko passe par un moteur trés complexe (contenu XML, traitement CSS, DOM &co). Même si le contenu de canvas n'est pas du XML, il est affiché dans un contexte XML. (et puis l'affichage proprement dit de Canvas passe par le backend Cairo, qui n'est pas encore vraiment optimisé).

Cette complexité n'existe pas dans Java puisqu'il n'a pas de moteur d'affichage, mais une simple bibliothèque qui communique quasi directement avec l'API graphique bas niveau du système. D'où les différences de perf.

En ce qui concerne "dessiner" du texte dans canvas, je ne sais pas.

# Re: canvas et consommation mémoire

Envoyé par : pitivier

Date : 08/02/2006 14:25

Ba fait du Java alors ;-)

Il faudra bien.

Ma prochaine appli aura un composant graphique plus petit (800*600), je testerai ça avec un canvas à ce moment là.

Je te remercie pour tes réponses.

# Re: canvas et consommation mémoire

Envoyé par : Utilisateur anonyme

Date : 08/02/2006 14:59

Alors, pour le texte, on ne peut pas en effet.

Tu as un élément graphique plus grand que ton écran. Dans ce cas, la logique voudrait que tu passes par un système de viewPort (on n'affiche qu'une partie de l'élément) que l'on peut modifier dynamiquement. Ce qui rendra ton application bien plus fluide. Donc pour ça, il faut utiliser quelque chose de plus puissant que le Canvas: le SVG .

Tu verras, on peut faire du texte et c'est, je trouve, beaucoup plus agréable à utiliser.

# Re: canvas et consommation mémoire

Envoyé par : pitivier

Date : 08/02/2006 15:41

Merci, pourrais-tu me donner des liens où je peux trouver de la documentation ?

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.