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

C++ Discussion :

out of memory


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Femme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2011
    Messages
    266
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 266
    Par d�faut out of memory
    Bonjour a tous,

    voila j'ai coder un programme en c++ qui me permet de communiquer avec une machine. Or lorsque je laisse le programme tourner relativement longtemps (arrive surtout lorsque le programme tourne toute une nuit ) j'obtiens une exception "out of memory".

    Ayant fait une recherche Google ( je pr�cise pour ceux qui me mettrais que google est mon ami JE SAIS ! ) : Je sais qu'une exception de "out of memory" provient du saturation de la m�moire.

    Etant sous un compilateur 32 bits je sais que je peut aller jusqu�� 2.5Go sans probl�me normalement. Or l� le probl�me c'est que lorsque j'observe avec le gestionnaire de tache la m�moire utilis�e par mon processus elle ne d�passe pas les 20 M�ga.

    De quoi d'autre peut provenir cette erreur de out of memory ??????

    J'ai v�rifi� tout mes "new" pour �tre s�r qu'un "delete" y soit associ�.

  2. #2
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    J'ai v�rifi� tout mes "new" pour �tre s�r qu'un "delete" y soit associ�.
    Apparemment pas
    Mais en utilisant les conteneurs de la STL et les pointeurs intelligents, tu ne devrais quasiment avoir plus de new/delete a �crire

    Essaye de voir si tu passer ton programme sous un analyseur tel valgrind ou Rational Purify
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre �clair� Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    D�tails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par d�faut
    Un petit coup de valgrind:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    valgrind --tool=memcheck --leak-check=yes
    Par contre, je connaissais pas Rational Purify, je vais tester �a pour voir.
    Rien que le nom en impose

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Citation Envoy� par LinuxUser Voir le message
    Par contre, je connaissais pas Rational Purify, je vais tester �a pour voir.
    Rien que le nom en impose
    Rational Purify est payant, si tu n'en disposes pas et que tu ne peux pas utiliser valgrind parce que ton appli ne tourne pas sous linux, tu peux essayer drmemory.

  5. #5
    Expert confirm�

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Software Developer
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par d�faut
    Sous Windows, avec Visual Studio il y a aussi Visual Leak Detector.
    Mais en tout cas il faut effectivement se m�fier du gestionnaire des t�ches par rapport � l'occupation m�moire de ton appli.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert � rien, mais qu'il est joli (des fois) : ProceduralGenerator (G�n�ration proc�durale d'images, et post-processing).

  6. #6
    Membre Expert Avatar de Astraya
    Homme Profil pro
    Consommateur de caf�
    Inscrit en
    Mai 2007
    Messages
    1 048
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Consommateur de caf�
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 048
    Par d�faut
    En debug, tu peux surcharger tes new et delete. A Chaque new, tu rajoutes l'adresse allou� dans un map avec la line et le nom de fichier en objet de la map et l'adresse en cl�. En delete, tu supprimes cette entr�e.
    A la destruction de ta map tu assert si il y a encore des entr�es dans la map, et tu sauras gr�ce � la ligne et le nom de fichier ou est ton new qui d�conne.

  7. #7
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Bonsoir,

    Citation Envoy� par flamme34 Voir le message
    Ayant fait une recherche Google ( je pr�cise pour ceux qui me mettrais que google est mon ami JE SAIS ! ) : Je sais qu'une exception de "out of memory" provient du saturation de la m�moire.

    Etant sous un compilateur 32 bits je sais que je peut aller jusqu�� 2.5Go sans probl�me normalement. Or l� le probl�me c'est que lorsque j'observe avec le gestionnaire de tache la m�moire utilis�e par mon processus elle ne d�passe pas les 20 M�ga.
    � moins que ton application soit la seule � �tre ex�cut�e sur la machine, toutes partagent la m�me ram et peuvent donc la saturer.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  8. #8
    Membre �clair�
    Femme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2011
    Messages
    266
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 266
    Par d�faut
    d�sol� du temps de r�ponse mais j'ai �t� pas mal occup�e ces dernier temps.

    � moins que ton application soit la seule � �tre ex�cut�e sur la machine, toutes partagent la m�me ram et peuvent donc la saturer.
    Je n'est que cette appli qui tourne a l'exception des programmes habituels (logiciel de gestion de carte graphique, anti virus, etc )

    Essaye de voir si tu passer ton programme sous un analyseur tel valgrind ou Rational Purify
    En toute logique si il devais y avoir une fuite m�moire je devrais la voir dans la m�moire utilis� gr�ce au gestionnaire de tache de Windows?non?

  9. #9
    Membre �clair�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Sant�

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par d�faut
    Salut,

    Je suis pas s�r que le gestionnaire des t�ches de Windows te soit d'un grand secours si ton exception "out of memory" n'est lanc� qu'au bout d'une nuit...

    Cherche plut�t du c�t� de valgrind comme te le conseil LinuxUser ou si tu utilises visual studio 2012, tu peux regarder ceci (je n'ai pas test� cette solution).

  10. #10
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par d�faut
    Le gestionnaire des t�ches de windows a une mani�re bien � lui d�afficher la m�moire utilis�e.

    Notamment, il y a plusieurs colonnes :
    memory size
    vm size

    et encore un troisi�me que je n�ai plus en t�te.

    Dans ton cas, je pense qu�il faut regarder la VM size, elle doit �tre beaucoup plus importante que tes 20 Mo.

    Autre chose : pour observer les memory leaks, un outil tr�s pratique est le perfmon. Tu rajoutes un compteur sur les � private bytes � de ton process : s�ils augmentent sans jamais redescendre, il y a tr�s vraisemblablement une fuite m�moire.

Discussions similaires

  1. [XStream][String]out of memory
    Par Invit� dans le forum Persistance des donn�es
    R�ponses: 8
    Dernier message: 10/01/2006, 14h52
  2. [C++] [gcc] out of memory
    Par fxp17 dans le forum GCC
    R�ponses: 5
    Dernier message: 06/01/2006, 10h29
  3. [pb m�moire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    R�ponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    R�ponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    R�ponses: 2
    Dernier message: 08/09/2003, 19h03

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