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

Flex Discussion :

Libérer la mémoire (DataGrid avec Renderer) [Flex4]


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Par défaut Libérer la mémoire (DataGrid avec Renderer)
    Bonjour,

    afin de ne pas trop encombrer la mémoire de mon application, je vide chacune de mes dataGrids après utilisation (Popup par exemple).

    J'utilise des Renderers dans mes DataGrids, et ceux-ci ne sont pas "vidés".

    Je m'explique un peu + avant de mettre un peu de code.

    Lorsque je lance le "Profiler" et que j'ouvre ma popup, je vois que ma dataGrid prend une certaine partie de la mémoire et je vois que mon Renderer en prend une aussi. Lorsque je ferme ma popup et que je vide ma dataGrid, la mémoire utilisée par ma dataGrid est libérée, mais pas celle de mes renderers... Alors que la dataGrid est vide. Comment puis-je libérer la mémoire de ces renderers?

    Voici le code de mon action "Fermer Popup".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private function titleWindow_close():void {
      if (array!=null){
    	array=new ArrayCollection();
    	dtg.dataProvider=array;
      }
      System.gc();//Forcer le GC en Debug
      PopUpManager.removePopUp(this);	
     
    }
    Merci de votre aide, des vos infos ou toute autre chose qui pourrait me diriger vers une solution.


  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Par défaut
    Autre petit souci,

    Le code présenté dans mon message précédent ne fonctionne pas pour toutes mes popups...

    Ok pour 1, mais pas pour les autres. Alors que le principe est identique. 1 datagrid, 1 ou plusieurs renderer.

    Qlq a-t-il déjà eu un comportement semblable?

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Salut,
    tu ne peux pas plutôt setter ton array à null ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private function titleWindow_close():void {
      if (array != null){
    	array = null;
    	dtg.dataProvider = array;
      }
      System.gc();//Forcer le GC en Debug
      PopUpManager.removePopUp(this);	
     
    }

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    Citation Envoyé par npirard Voir le message
    Autre petit souci,
    Ok pour 1, mais pas pour les autres. Alors que le principe est identique. 1 datagrid, 1 ou plusieurs renderer.
    Qu'est-ce qui ne fonctionne pas exactement ? Ton array ne se vide pas ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Par défaut
    Bonjour,

    merci pour vos réponses.

    - Que je mette à null ou comme je l'ai fait, le comportement est le même.
    - Mon tableau se mettait bien a vide, mais les renderer non (En mémoire, mais bien à l'écran).

    En faisant mes tests, j'ai remarqué que seul mes renderers incorporant des Progress Bar ne se vidaient pas, j'ai donc ajouté une action lors du "removedFromStage" du mon renderer où je fait un "removeChild2 de ma progressBar et cela fonctionne. (Enfin parfois).

    D'avance merci pour vos commentaires.


  6. #6
    Membre émérite
    Homme Profil pro
    Consultant Angular / Java J2EE
    Inscrit en
    Novembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant Angular / Java J2EE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 545
    Par défaut
    As-tu également essayé invalidateDisplayList() sur ta datagrid ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Par défaut
    Non, mais je m'en vais essayer...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb avec des fonctions pour libérer la mémoire
    Par Krisprolls31 dans le forum C
    Réponses: 3
    Dernier message: 26/08/2010, 14h14
  2. boucle simple dans une dataGrid avec quand même une erreur !
    Par fkr dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/11/2005, 15h04
  3. Mémoire graphique avec StringGrid
    Par Jeanzeze dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/10/2005, 11h28
  4. [C#]Datagrid avec checkboxs et pagination
    Par kenzo080 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/07/2005, 07h10
  5. [C#] Colonne de trop dans DataGrid avec SQLCE
    Par Roach- dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/04/2005, 20h01

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