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 :

memoire contigue max


Sujet :

C++

  1. #1
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut memoire contigue max
    Bonjour,

    J'aimerai connaitre dans un code la taille max du bloc de memoire contigue que je peux allouer avec un new sur un pointeur quelconque.
    J'y arrive bien en testant un new(max) et augmentant progressivement le max, mais ca prend un peu de temp et ca alloue réellement la mémoire.
    Existe-t-il une function renvoyant la taille max d'un bloc contigue en mémoire, sans l'allouer evidemment ?

    merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Pas vraiment.
    Il faudrait en fait demander au système quelle quantité de mémoire libre il y a, et quelles sont les restrictions sur l'utilisation de cette mémoire.

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Par défaut
    Ce code permet de connaître la taille de mémoire virtuelle disponible. Ca ne répond pas vraiment à la question mais ça peut peut-être aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     MEMORYSTATUS stat;
    GlobalMemoryStatus (&stat);
    std::cout<<"dispo memoire : "<<stat.dwAvailVirtual<<std::endl;

  4. #4
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Non, effectivement. En fait, j'utilise ca comme point de départ, mais ca ne dit en rien combien de mémoire libre contigue (ou affectable d'un coup par un new[]) je peux utiliser
    merci tout de même.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Simple curiosité, quel est le but de récupérer ce genre d'info ?

  6. #6
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    C'est pour un programme de calcul scientifique de transport de particules...
    Enfin, j'ai besoin de lancer un nombre de particule bien superieur à la capacité meoire d'un PC. Je teste donc, le nombre max que permet la mémoire et en focntion de ca, je decoupe mon probleme en plusieur bout identique.

  7. #7
    Membre chevronné Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par défaut
    Sous VC++ 2005 je crois que c'est 0x7fffffff ( si ta memoire libre le supporte bien sur ! )

  8. #8
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Que veux-tu dire par "0x7fffffff"

  9. #9
    Membre éprouvé Avatar de galak63
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    ca doit etre l'adresse du dernier emplacement mémoire

  10. #10
    Membre émérite Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Par défaut
    Sinon, tu peux essayer d'allouer ce dont tu as besoin, et diminuer au fur et à mesure la quantité de mémoire allouée nécessaire, jusqu'à ce que l'allocation à new réussisse.

  11. #11
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 540
    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 540
    Par défaut
    Citation Envoyé par uriotcea
    C'est pour un programme de calcul scientifique de transport de particules...
    Enfin, j'ai besoin de lancer un nombre de particule bien superieur à la capacité meoire d'un PC. Je teste donc, le nombre max que permet la mémoire et en focntion de ca, je decoupe mon probleme en plusieur bout identique.

    arrggh si la mémoire requise en RAM est insuffisante l'OS va augmenter le fichier de pagination (pagefile.sys sous Windows XP et 2000 ) !
    Donc cela va ralentir encore plus les processus !
    Si tu programmes sous/pour Windows je conseillerais le livre de Jeffrey Richter "Inside Windows NT"

  12. #12
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Ce genre de trucs, c'est spécifique à l'OS.
    Le C++ ne sait rien de tout cela.
    Essaie plutôt sur le forum de dev pour windows si ton appli sera sous windows.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. max memoire utiliser par un proc
    Par Zwiter dans le forum Linux
    Réponses: 10
    Dernier message: 10/11/2020, 11h36
  2. Getmem et taille MAX memoire allouée
    Par Annaced dans le forum Langage
    Réponses: 1
    Dernier message: 20/04/2009, 09h03
  3. Configurer ma memoire virtuelle pour 3DS Max
    Par masta64 dans le forum Windows Vista
    Réponses: 8
    Dernier message: 04/03/2008, 11h56
  4. Memoire vive max
    Par Denn's dans le forum Windows XP
    Réponses: 14
    Dernier message: 26/02/2008, 10h26
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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