Bonjour,
Je voudrais savoir s'il est possible de connaître la quantité de Ram utilisé par un objet javascript de ma composition et d'élément HTML.
Bonjour,
Je voudrais savoir s'il est possible de connaître la quantité de Ram utilisé par un objet javascript de ma composition et d'élément HTML.
Salut,
Je ne pense pas qu'il y ait de methode javascript retournant l'espace en mémoire pris par un objet.
Cela doit dépendre de l'OS que tu utilises (cf. en C malloc(), sizeof()).
Javascript est un "garbage collected language", les objets sont alloués en mémoire lors de leur création et cet espace est libéré par le navigateur lorsqu'il n'y a plus de référence à cet objet. Les objects créés par le navigateur sont gérés par le navigateur.
Les navigateurs ont donc en charge la gestion de l'allocation et de la libération de la mémoire des nombreux objets représentant une page html qu'ils affichent (les objets du DOM).
IE utilise lui sont propre système de poubelle ce qui crée des problèmes de fuite de mémoire dans certains cas.
Par exemple :
IE ne libérera la mémoire utilisée par element et objet qu'à sa fermeture!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function fuite() { var element = document.getElementById('element'); var objet = { 'element': element}; element.objet = objet; }
ou plus anodin :
Dans ce dernier cas la solution est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function myOnclick(){ var element = document.getElementById('element'); element.onclick = function() { this.style.backgroundColor = 'red'; } }
En général les fuites de mémoire passent inaperçue pour un site web mais il faut se méfier des boucles et bien faire attention en cas de developpement d'application dont l'execution dure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function myOnclick(){ var element = document.getElementById('element'); element.onclick = function() { this.style.backgroundColor = 'red'; } element = null; //-- de le faire soi meme... }
if (navigator.geolocation) { //do your magic }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager