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

Visual C++ Discussion :

Comment connaitre la quantité de RAM libre ?


Sujet :

Visual C++

  1. #1
    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 Comment connaitre la quantité de RAM libre ?
    Bonjour tout le monde !
    Tout est dans le titre, j'aimerais avoir un moyen de connaitre la quantité de RAM libre à un instant donné avec Visual C++. Je développe pour Pocket PC (Windows Mobile 5.0)...

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu peux regarder du coté de GlobalMemoryStatus (dispo pour CE)

  3. #3
    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
    Merci beaucoup c'est parfait !

  4. #4
    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
    Hum, je ne peux pas m'empêcher de reposer une autre question, qui va avec .
    J'ai à peu près 58Mo au total (64 officiellement...) et environ 35Mo de libre lorsque je lance mon application (il n'y a que ActiveSync de lancé). Cette application a besoin d'énormément de RAM, mais j'ai l'impression qu'il y a un blocage autour des 8Mo (par Windows Mobile lui-même ?), car mes new[] échouent à partir de cette limite.
    Si cette limite existe, comment la contourner (gentillement), sinon, comment disposer de plus de RAM au lancement (23Mo d'utilisés c'est énorme !) ?

    Merci d'avance !

  5. #5
    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
    Question subsidiaire: peut-on utiliser un fichier en ROM (j'ai 160Mo disponibles) pour alléger la quantité de RAM nécessaire, mais de manière transparente (une mémoire virtuelle en quelque sorte) ?

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    L'allocation doit se faire avec l'API Win32, en fonction des besoins ...
    voir GlobalAlloc, VirtualAlloc, HeapAlloc, etc ...

  7. #7
    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
    OK, j'ai trouvé pas mal de choses à ce sujet...
    Est-il l'imaginable de remplacer l'opérateur new, par une redéfinition, par l'un de ceux-ci ?

    Je ne trouve pas grand chose à ce sujet, et je n'ai pas envie de refaire tout le code (trop long)...

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    si tu le sens ... pourquoi pas
    je sais pas s'il existe déjà des choses toutes faites.
    Sachant que new utilise à l'origine HeapAlloc.

    Mais bon, à mon avis, c'est une perte de temps

  9. #9
    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
    OK, et à ton avis, il est possible de passer une directive disant d'utiliser VirtualAlloc au lieu de HeapAlloc ?

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    non, pas à ma connaissance.

    Mais je ne vois pas pourquoi tu veux t'embeter à faire ca.
    A la rigueur, fais toi une classe qui encapsule une allocation virtuelle, mais de là à surcharger le new ...

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

Discussions similaires

  1. Commande free pour connaitre la quantité de RAM utilisé
    Par evguen dans le forum Administration système
    Réponses: 4
    Dernier message: 12/05/2011, 17h04
  2. Comment connaitre la liste des ports libres?
    Par sofien dans le forum Sécurité
    Réponses: 3
    Dernier message: 04/08/2008, 10h45
  3. comment connaitre la taille libre dans une disquette ?
    Par lenetfm dans le forum Administration système
    Réponses: 2
    Dernier message: 14/05/2008, 19h20
  4. comment connaitre le nombre ...
    Par mythtvtalk.com dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/08/2003, 08h18
  5. Vitesse du CPU, quantité de RAM... en C
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 07/07/2003, 20h48

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