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 RAM disponible du PC


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut Mémoire RAM disponible du PC
    Bonjour,

    En fait, je dois faire un programme en C++ qui prend de la mémoire RAM avec malloc pour ensuite laisser peu de mémoire pour pouvoir tester d'autres programmes. Pour se faire j'ai besoin dans un premier temps de savoir la mémoire RAM disponible (non utilisé) du PC.

    Pouvez vous m'indiquer une fonction qui permet donc de savoir la mémoire disponible du PC. J'ai cherché du côté de Heap etc... c'est ce qu'on m'a conseillé mais je n'ai rien trouvé.

    Je vous remercie par avance,

    A+

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Salut ce genre de question ça dépend de l'OS.
    Et il me semble que c'est un sujet abordé.
    Il doit y avoir peut-être quelques fonctions du C standard certains répondront mieux que moi mais je doute que tu aies quelque chose en standard..
    Sous Turbo C tu as coreleft()
    Sous Windows les API Windows

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Moi pour une application comme ça, j'ai aussi pensé au système inverse (bon, je ne sais pas si c'est possible). Mais dans le genre, on dit au système que une application X, ne devra pas prendre plus de 40Mo (par exemple). Ou alors, comme si on exécutait l'application dans une boite.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 162
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    En fait, c'est sous windows XP. Mais quelle API windows permet de faire ce que je veux faire. J'ai pas mal cherché sur Internet et je n'ai pas trouvé de solutions.

    Quelqu'un a une solution?

    Je vous remercie par avance,

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Je viens tout juste de penser que au final, même si allouez toute la mémoire vive, le système (ni même les applications) ne crasheront, car le système utilisera le swap.
    Il faudra donc aussi à penser à enlever le swap.

    Du coup, si on alloue toute la mémoire, avec l'application idiote et naïve que l'on pense, on risque de faire crasher par que l'application à tester, mais aussi les autres applications (et possiblement le système).

    En conclusion, il me semble clairement plus efficace de lancer l'application à tester dans une sorte de boite (sandbox).

    Alors, dans les solutions que je vois, il y a:
    - On développe un module / code afin de remplacer les malloc / realloc / free au sein même de l'application (donc un code, pour le mode débug/test).
    - On fait une sorte de hook (remplacement de la DLL (que pour cette application)) pour la redéfinition des malloc / realloc / free.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pourquoi ne pas utiliser une WM avec une mémoire limité?

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par yan Voir le message
    Pourquoi ne pas utiliser une WM avec une mémoire limité?
    Cela me semble une bonne idée ... mais il reste toujours un système autour, qui gère la mémoire, et qui peut, lui, se planter.
    Et il y a toujours un swap (ok, désactivable).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Pourquoi ne pas demander à l'utilisateur (ou rendre configurable) la valeur d'espace maximal à utiliser par l'application? (ou tout autre valeur utile).

    C'est ce que j'ai répondu à une réponse similaire sur stackoverflow et je pense que c'est une solution pratique et pragmatique.

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Pourquoi ne pas demander à l'utilisateur (ou rendre configurable) la valeur d'espace maximal à utiliser par l'application? (ou tout autre valeur utile).

    C'est ce que j'ai répondu à une réponse similaire sur stackoverflow et je pense que c'est une solution pratique et pragmatique.
    Je pense qu'il veux tester des applications dans des condition de faible mémoire. C'est pour cela que je parlais de VM.

  10. #10
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    L'API Windows qui permet de contrôler la mémoire allouée à chaque processus :

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Tu y trouveras les fonctions pour agrandir ou limiter ta consommation mémoire max, ou pour déterminer la quantité de mémoire consommée par ton process.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  11. #11
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Sinon peut être que GlobalMemoryStatusEx convient pour connaitre la mémoire disponible...

    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

Discussions similaires

  1. Problème de la mèmoire RAM
    Par mhamedbj dans le forum Windows XP
    Réponses: 9
    Dernier message: 03/06/2007, 18h55
  2. Détecter mémoire RAM
    Par MYster dans le forum Langage
    Réponses: 1
    Dernier message: 09/07/2006, 12h35
  3. Choix de mémoire RAM DDR 1Go
    Par Pragmateek dans le forum Composants
    Réponses: 20
    Dernier message: 18/04/2006, 14h10
  4. [CR][paradox] mémoire partagée disponible insuffisante !
    Par AGT dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 24/03/2004, 14h27

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