IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Mémoire Javasript et navigateur


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 109
    Points : 96
    Points
    96
    Par défaut Mémoire Javasript et navigateur
    Bonjour,

    Je rencontre un problème de mémoire sur une de mes pages web. N'ayant pas trouvé de réponse parmi toutes mes lectures, je vous demande un peu d'aide:

    J'ai une page web qui consomme une api via axios toutes les 100ms à l'aide de setinterval. Cette api renvoi uniquement 3 valeurs. Ces 3 valeurs sont affichées dans un graphique à chaque retour. Le graphique ne contient donc que 3 valeurs à chaque instant.

    Après 8h de fonctionnement, dans le gestionnaire des taches de windows, chrome occupe 1,5 go en ram. Sur ma page, window.performance.memory.usedJSHeapSize est a 23 mo. Mon DOM n' a pas évolué.

    Du coup, je ne comprend pas qu'est ce qui consomme la mémoire pour en arriver à cela?
    Comment analyser ou corriger ce phénomène?
    Peut on obtenir en JS la mémoire totale de l'onglet en cours?

    D'avance merci.

    Ci dessous une capture du phénomène:Nom : Capture.JPG
Affichages : 95
Taille : 12,4 Ko

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    tu as un "gestionnaire des taches" dans chrome
    [les 3 points options en haut a droite] > plus d'outils > gestionnaire des taches
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 109
    Points : 96
    Points
    96
    Par défaut
    J'ai bien consulté ces valeurs mais j'obtiens des données différentes de JS et windows. Nom : Capture.JPG
Affichages : 69
Taille : 22,2 Ko

    J'ai également utilisé les outils de la console pour voir ma consommation de ram mais rien.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 233
    Points : 15 526
    Points
    15 526
    Par défaut
    est ce que le script reçoit bien les réponses du serveur avant l'appel suivant ? si ce n'est pas le cas, les requetes en attente vont s'empiler et ça peut remplir la mémoire.
    c'est pour ça que j'entends souvent que setinterval est déconseillé dans ce cas et qu'il vaut mieux faire un settimeout dés qu'on reçoit la réponse du serveur.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 109
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Le script reçoit bien le retour des appels. J'ai protégé le script pour qu'une nouvelle requête ne soit pas lancée tant que la précédente n'a pas répondu dans l'éventualité d'une latence. J'ai également un compteur de requête lancée qui reste bien à 1.

    La requête a un temps moyen de 25ms, donc j'ai un peu de marge.

    J'ai remarqué cependant un comportement coté chrome qui semble lié à la mise à jour du graphique (qui est un SVG). La boucle des appels ne semble pas être la source du problème car sans maj graphique la mémoire ne bouge pas.

    Ce que j'aimerais comprendre surtout, c'est pourquoi il y 4 valeurs de mémoires différentes. A quoi correspondent elle?

Discussions similaires

  1. Ajax vs mémoire navigateur
    Par frolij dans le forum ASP.NET Ajax
    Réponses: 4
    Dernier message: 19/06/2015, 12h13
  2. vider mémoire cache du navigateur
    Par floran974 dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2009, 15h57
  3. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 09h38
  4. Vitesse de la mémoire vidéo
    Par Anonymous dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 06/06/2002, 20h20
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo