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

Simulink Discussion :

Utilisation mémoire avec MATLAB 7.3


Sujet :

Simulink

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut Utilisation mémoire avec MATLAB 7.3
    Bonjour à tous,

    Je fait faire plein d'actions à mon Matlab via des scripts (ouverture fermeture de model Simulink).
    Avec la version 6.5 de Matlab, cela marchait bien et la mémoire était libérée.
    Avec la version 7.3, la consommation mémoire monte jusqu'à remplir toute la mémoire paginée.

    Quand j'interrompt mon action j'ai rien en workspace mais beaucoup d'objets dans "inmem" qui doivent être les fonctions en mémoire. Certains de ces objets sont "unlockés" et pourtant impossible à "clearer".

    J'ai pas l'impression d'avoir beaucoup de fuite mémoire puisque ça marche bien en Matlab 6.5.

    Qu'est-ce qui a pu évoluer au point de me faire exploser la mémoire?

    Mici d'avance pour vos idées

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par sybilla Voir le message
    Quand j'interrompt mon action j'ai rien en workspace mais beaucoup d'objets dans "inmem" qui doivent être les fonctions en mémoire. Certains de ces objets sont "unlockés" et pourtant impossible à "clearer".
    Désolé d'insister, mais es-tu sûr ?

    How can I clear locked functions from memory?

  3. #3
    Membre averti
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut
    Bonjour Dut,

    Mon matlab utilise 1Go de Paginée,
    Je fais un "Whos", j'ai rien.
    Un "clear variables" et un "clear global" ne donne rien (en conso mémoire)
    Un "clean functions" ferme Matlab et là évidemment 800Mo disparaissent.

    C'est pour çà que je me suis orienté vers "inmem" pour voirs l'ensemble des fonctions.

    (Je suis sous XP mais sous Win2000, j'ai le même problème. Ce n'est donc pas une histoire de Thème XP.
    L'histoire du Thème XP est qu'avec Matlab 7.3 si on ouvre et ferme rapidement des fenêtres Simulink dans une boucle, les objets mémoires ne sont pas deleter par Matlab et on arrive vite à 10 000 handles de windows = plantage Matlab.
    La solution est de désactiver le service Thème XP de windows.
    Mais ici ce ne semble pas être le même problème)

    Je cherche donc toujours en testant les différents memory manager de Matlab mais ça na pas l'air concluant.

    ++

  4. #4
    Membre averti
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut
    Aïe, je crois avoir une piste:
    Simulink -> Stateflow.
    Ils ne s'interrogent plus pareil et je dois voirs l'utilité du SFexit...

  5. #5
    Membre averti
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut
    Bonjour,

    J'ai tester sans StateFlow, j'ai le même problème.
    En revanche j'ai une communication en OLE avec Word (Office)
    Il est possible que la fuite mémoire viennent de là.

    ++

  6. #6
    Membre averti
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut
    Finalement, le bug vient d'un print -deps.
    Sous Matlab 7.3 il consomme beaucoup trop or j'ai 3000 images à printer.
    Y'a t-il un moyen de libérer la mémoire de ces prints?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    As-tu essayé de modifier la propriété Renderer de l'objet Figure ?

    Renderer: [ {painters} | zbuffer | OpenGL | None ]
    Je ne suis pas franchement sûr de l'impact que cela peut avoir sur PRINT

  8. #8
    Membre averti
    Inscrit en
    Août 2005
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 36
    Par défaut
    Bonjour, j'ai tester les types de prints.
    Le bug survient lorsque je print une figure d'un model avec un Stateflow.
    Même si je print (print('-depsc', '-zbuffer', hHandleFigure, 'Figure.eps') une partie sans stateflow, je prends 1Mo de + en mémoire à chaque coup.

    Si j'ai pas de stateflow dans mon modèle c'est OK

    Si j'utilise R 6.5 c'est OK (même avec stateflow)

    En gros y'a comme une incompatibilité entre print et un stateflow.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for i=1:100 
    	load_system('MonSystem'); 
    	hHandleFigure= get_param('MonSystem/UnSS', 'Handle'); 
        print('-depsc', '-zbuffer', hHandleFigure, 'Figure.eps'); 
    	close_system('MonSystem');
    end;
    Si tu met un Stateflow dans MonSystem = +1Mo/print, sinon OK

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Par défaut
    Pour les objets stateflow if existe une fonction sfprint. Je ne sais pas si ça peux mais essaye toujours.

Discussions similaires

  1. [Débutant] utilisation dll générée avec matlab en C++
    Par 3aychoucha dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/04/2011, 13h16
  2. Utiliser Cygwin avec Matlab
    Par virtuadrack dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/04/2010, 17h07
  3. Utilisation des Dll avec MATLAB 2007b
    Par halimi dans le forum MATLAB
    Réponses: 7
    Dernier message: 21/01/2009, 15h29
  4. utilisation de VTK avec Matlab
    Par roubas dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/11/2008, 11h53
  5. [hamming] Comment utiliser cette fonction avec Matlab 6.5
    Par vivematlab dans le forum Signal
    Réponses: 2
    Dernier message: 02/05/2007, 16h52

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