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

MFC Discussion :

VC6 : Allocation mémoire > 2Go


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut VC6 : Allocation mémoire > 2Go
    Bonjour,

    Y a t il sous VC6 un limitation de l'allocation mémoire à 2Go ?

    Si oui, quelqu'un a t il des liens pouvant me permettre de comprendre les raisons (en dehors du fait que ce soit lié à la taille max sur un int).


    PS :
    j'ai une application compilée sous VC6 en mode console mais avec l'option "Use mfc in shared dll" pour une question de compatibilité avec des .lib.

    Elle utilise donc la dll mscvcrt.

    lorsque j'atteins

  2. #2
    mat.M
    Invité(e)
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par Manu35
    Bonjour,

    Y a t il sous VC6 un limitation de l'allocation mémoire à 2Go ?
    ......
    lorsque j'atteins
    VC6 n'a rien à voir là-dedans.
    VC6 compile du code source en exécutable un point c'est tout.
    VC6 s'en fiche si on fait un malloc , new de 4Go, 4To de mémoire !

    Par contre l'OS oui va s'en inquiéter.
    Il faut utiliser des API win32 spécifique comme GlobalAlloc voir le MSDN

  3. #3
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Windows limite par défaut l'espace user à 2 Go. Il faut booter avec l'option /3GB dans le boot.ini pour avoir 3Go. Mais pas tous les Windows l'autorisent, et de mémoire ton appli doit être compilée de manière spéciale.

  4. #4
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par mat.M
    Il faut utiliser des API win32 spécifique comme GlobalAlloc voir le MSDN
    Mon application est multiplateforme (j'utilise gcc par ailleur) donc je dois éviter les api spécifique win32.

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    GlobalAlloc et ses soeurs sont soumises aux même restrictions. Sous Linux t'es limité à 3Go aussi.

  6. #6
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Windows limite par défaut l'espace user à 2 Go. Il faut booter avec l'option /3GB dans le boot.ini pour avoir 3Go. Mais pas tous les Windows l'autorisent, et de mémoire ton appli doit être compilée de manière spéciale.
    Auriez vous quelques liens expliquant la limitation et donnant les moyens d'y pallier (a travers le boot.ini ou autre) ?

    Merci

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Travailler sur une machine 64bits ?

    N'oublions pas que des pointeurs 32 bits ne peuvent adresser que 4Go (sous Windows, 2 séparés pour les programmes et 2 partagés pour le kernel).

    Ainsi, à moins de changer de machine (ou de gérer sa propre mémoire virtuelle avec de gros fichiers), ce n'est pas tellement aisé de contourner ce genre de restriction...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    En 32 bits on peut manipuler plus de 4 Go avec différentes techniques qui rappellent celles de l'ère 16 bits:
    http://msdn.microsoft.com/library/en-us/memory/base/large_memory_support.asp
    Pour l'histoire des 3GB:
    http://msdn.microsoft.com/library/en-us/memory/base/4gt_ram_tuning.asp
    http://msdn.microsoft.com/library/en-us/memory/base/memory_limits_for_windows_releases.asp

  9. #9
    mat.M
    Invité(e)
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par Manu35
    Mon application est multiplateforme (j'utilise gcc par ailleur) donc je dois
    éviter les api spécifique win32.
    Petzold dans son livre sur la programmation de Windows affirme qu'on peut utiliser les malloc et new du C/C++ standards.
    Mais la mémoire risque de se fragmenter et d'être mal gérée donc il vaut mieux utiliser des API spécifiques.
    Encore une fois le code portable multiplateforme je n'y crois pas , c'en est la preuve éclatante.
    Bien sur que tu peux faire du code multiplateforme mais tu vas pénalisé par la machine....
    repasses dans 3 mois et dis-nous quelle solution tu auras choisie

  10. #10
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par mat.M
    Encore une fois le code portable multiplateforme je n'y crois pas , c'en est la preuve éclatante.
    ça dépend quand même de ce que tu veux faire et de ce que tu appels du "code multiplateforme".

    Ma solution est de fournir un utilitaire calculant la mémoire vive en fonction des différents paramètres et que l'utilisateur choississent les "bons" pour être bien en dessous de la limite de son système.

    Si c'est au dessus de 2Go alors il s'achete une barrette ou deux et passe en 3GB si c'est au dessus de 3Gb ben il va s'acheter un PC 64 bits et le windows qui va bien

    voila


    PS : la solution qui consiste à diminuer la mémoire utilisée par l'application a déjà été mis en oeuvre mais que dans les cas critiques ca ne passe toujours pas, un cas nécessite même l'utilisation de 70Go.

  11. #11
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    En 32 bits on peut manipuler plus de 4 Go avec différentes techniques qui rappellent celles de l'ère 16 bits:
    http://msdn.microsoft.com/library/en-us/memory/base/large_memory_support.asp
    Pour l'histoire des 3GB:
    http://msdn.microsoft.com/library/en-us/memory/base/4gt_ram_tuning.asp
    http://msdn.microsoft.com/library/en-us/memory/base/memory_limits_for_windows_releases.asp
    Merci beaucoup

  12. #12
    mat.M
    Invité(e)
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par Manu35
    ça dépend quand même de ce que tu veux faire et de ce que tu appels du "code multiplateforme".
    Gnéé ??
    Ici c'est le forum VC++ etu dis utiliser gcc.
    En plus c'est toi qui utilises cette terminologie de "multiplateforme".
    Je veux être bête mais pas à ce point-la

  13. #13
    mat.M
    Invité(e)
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par Manu35
    un cas nécessite même l'utilisation de 70Go.
    70Go !!! Fichtre Diantre par Toutatis
    Pourquoi avoir besoin de 70Go ?

    Il faut prendre une station de calcul sous Unix ou un IBM .
    Un banal PC n'est pas du tout fait pour cela , encore moins son architecture.
    Et encore moins l'OS.
    Un PC c'est le système informatique de Monsieur Tout le Monde

  14. #14
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Windows Server x64 gère jusqu'à 1 TB. Il est aussi possible de répartir la charge sur plusieurs PC.
    Mais avoir besoin 70Go de RAM libre à un instant t ( ), c'est pas un besoin très commun, et il va forcément falloir étudier les spécificités de la machine, que ce soit Windows ou un autre OS.

  15. #15
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par mat.M
    Pourquoi avoir besoin de 70Go ?
    C'est un problème d'utilisation du logiciel, l'utilisateur "intelligent" ne tombera pas dans ce cas, mais l'autre, celui qui cherche des "nouazes" (tu dois comprendre ce que je veux dire) y arrivera, voir le fera exprès.

    Donc, il faut être près à trouver des solutions pour cet éventuel "stupide" besoin.

    Merci en tout cas pour vos réponse ....

  16. #16
    mat.M
    Invité(e)
    Par défaut Re: VC6 : Allocation mémoire > 2Go
    Citation Envoyé par Manu35
    Citation Envoyé par mat.M
    Pourquoi avoir besoin de 70Go ?
    C'est un problème d'utilisation du logiciel, l'utilisateur "intelligent" ne tombera pas dans ce cas, mais l'autre, celui qui cherche des "nouazes" (tu dois comprendre ce que je veux dire) y arrivera, voir le fera exprès.

    Donc, il faut être près à trouver des solutions pour cet éventuel "stupide" besoin.

    Merci en tout cas pour vos réponse ....
    Ok mais on ne sait tjs pas pourquoi l'utilisateur doit allouer 70Go.
    C'est pour un logiciel de 3d comme Catia ?

  17. #17
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut
    nope traitement du signal avec des fichiers source de +sieurs Go

  18. #18
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    géophysique / sysmique ?

  19. #19
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Par défaut
    Bon ça suffit le questionnaire ! De toute façon je peux pas en parler 8)

  20. #20
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Manu35
    Bon ça suffit le questionnaire ! De toute façon je peux pas en parler 8)
    C'est pour le Commissariat de l'Energie Atomique ?
    Ne t'inquiète pas on ne dira rien motus et bouche cousue
    Demande leur de te payer un calculateur sous Unix

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème d'allocation mémoire > 2Go
    Par tnarol dans le forum C++
    Réponses: 19
    Dernier message: 09/07/2008, 12h03
  2. [VC6]Problème mémoire avec BDE
    Par Vow dans le forum MFC
    Réponses: 5
    Dernier message: 07/10/2005, 11h44
  3. Allocation mémoire
    Par DestyNov@ dans le forum C++
    Réponses: 9
    Dernier message: 23/08/2005, 08h09
  4. [Pointeur] Allocation mémoire
    Par Rayek dans le forum Langage
    Réponses: 22
    Dernier message: 20/05/2005, 10h26
  5. Allocation mémoire dynamique
    Par ITISAR dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/01/2005, 09h59

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