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 :

Mémoire virtuelle insuffisante ?


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Points : 34
    Points
    34
    Par défaut Mémoire virtuelle insuffisante ?
    Bonjour,

    J'ai un petit soucis avec un programme : il contient un certain nombre de boucles, de boucles imbriquées, de malloc, ... L'utilisateur peut imposer au programme plusieurs itérations de la fonction principale. Le problème donc, c'est qu'une fois ça va, et petit à petit le pc rame de plus en plus. A 10 itérations, windows m'indique l'utilisation du fichier de pagination : 1.70 Go . Malheuresement je dois imposer 22 itérations : là, j'ai le fameux message "Votre système manque de mémoire virtuelle".

    Je me demandais s'il n'y avait pas moyen, lors du passage d'une itération à l'autre, de redonner un petit coup de punch à la mémoire système ? Mais il ne faut pas effacer toutes les données, il y a un tableau qui doit être conservé. Est-ce possible ?

  2. #2
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Sans le programme, ou au moins la partie critique, ça ne va pas être facile de répondre...
    Si il ya du malloc un peu partout, et que tu ne fais jamais de free quand tu n'en as plus besoin, c'est sûr, ça peut ramer...
    Maintenant, tu as peut-être un soucis d'algo, un dépassement mémoire quelconque...

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Mémoire virtuelle insuffisante ?
    Citation Envoyé par babar56
    J'ai un petit soucis avec un programme : il contient un certain nombre de boucles, de boucles imbriquées, de malloc, ... L'utilisateur peut imposer
    Des malloc(), c'est bien. Y'a-t-il les free() correspondants ? La mémoire n'est pas une ressource infinie.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Il n'y a pas le moindre free dans mon code
    Le problème peut être corrigé de cette façon ? Un exemple de la façon dont on se sert de la fonction free ?

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par babar56
    Il n'y a pas le moindre free dans mon code
    Le problème peut être corrigé de cette façon ? Un exemple de la façon dont on se sert de la fonction free ?
    C'est simple. Dès que tu n'as plus besoin d'un bloc alloué, tu le libères en passant à free() exactement la même valeur que celle que t'a donné malloc(). C'est le B.A. BA de la gestion dynamique de la mémoire. Tu dormais pendant le cours ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Tu dormais pendant le cours ?
    C'est le cas de le dire ! Les derniers cours de C auquels je suis allé remontent à plus d'un an, et je t'assure que les profs mettent plus l'accent sur malloc que sur free ... Ne parlons même pas des TDs où j'ai toujours été présent, et on ne nous a jamais expliqué la nécessité d'utiliser free (on ne faisait que de toutes petites fonctions aussi, et là c'est beaucoup plus long que d'ordinaire).

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par babar56
    Citation Envoyé par Emmanuel Delahaye
    Tu dormais pendant le cours ?
    C'est le cas de le dire ! Les derniers cours de C auquels je suis allé remontent à plus d'un an, et je t'assure que les profs mettent plus l'accent sur malloc que sur free ... Ne parlons même pas des TDs où j'ai toujours été présent, et on ne nous a jamais expliqué la nécessité d'utiliser free (on ne faisait que de toutes petites fonctions aussi, et là c'est beaucoup plus long que d'ordinaire).
    C'est quoi cette école. Je pourrais demander à quelques 'potes' d'y mettre le feu...

  8. #8
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Indépendament de cela, c'est clair que c'est aberrant, tu peux te reporter au tutoriel présent sur dvp :
    http://rperrot.developpez.com/articles/c/allocationC/

  9. #9
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Quelle est la quantité de RAM disponible?

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par seriousme
    Quelle est la quantité de RAM disponible?
    Je ne vois pas le rapport. La mémoire, avec un système moderne, ce n'est pas que la RAM.

  11. #11
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Je ne vois pas le rapport. La mémoire, avec un système moderne, ce n'est pas que la RAM.
    OK mais +de RAM=- de swappe

    non?

    Plus il ya de RAM moin on a besoin de la memoire virtuelle.

    Même si dans le cas présent il faudrait beaucoup de RAM pour "absorber" 1.7 GO

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 70
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par seriousme
    Quelle est la quantité de RAM disponible?
    512 Mo.

    Citation Envoyé par Emmanuel Delahaye
    C'est quoi cette école. Je pourrais demander à quelques 'potes' d'y mettre le feu...
    Une école d'ingénieurs, mais pas (du tout) en informatique. Je n'en dirais pas plus par crainte des représailles 8)

    Merci pour le lien progman.

Discussions similaires

  1. Espace mémoire virtuelle insuffisante
    Par andrianiaina dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 13/07/2010, 18h42
  2. Mémoire virtuelle insuffisante
    Par moumine dans le forum Windows XP
    Réponses: 8
    Dernier message: 18/11/2008, 18h49
  3. mémoire virtuelle minimale insuffisante
    Par sempire dans le forum Windows XP
    Réponses: 16
    Dernier message: 15/10/2003, 18h29
  4. [Turbo Pascal] Limite de la mémoire virtuelle
    Par moon tiger dans le forum Turbo Pascal
    Réponses: 12
    Dernier message: 08/02/2003, 23h30
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10

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