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 :

Problème de consommation mémoire


Sujet :

C

  1. #1
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut Problème de consommation mémoire
    Bonsoir à tous,
    J'ai développé un programme qui utilise beaucoup de mémoire de l'ordre de plus de 4Go, je lui fais tourner sur Ubunto 32 bits.
    donc, j' aimerais savoir s'il y a un moyen d'allouer plus de 4Go de mémoire sur un tel système ( sans devoir installé un système 64 bits )

    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Etant donné que les systèmes actuels utilisent de la mémoire virtuelle, tu ne devrais pas avoir de problèmes.
    Plus tu pédales moins fort, moins t'avances plus vite.

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Citation Envoyé par Pouet_forever Voir le message
    Etant donné que les systèmes actuels utilisent de la mémoire virtuelle, tu ne devrais pas avoir de problèmes.
    (mais ça ne va pas améliorer les performances en temps d'exécution, hélas)
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  4. #4
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Merci Pouet Forever pour ta réponse,
    En fait, je n'ai q'un seul et unique programme qui demande plus de 4 Go ...
    Le programme à ce moment est dans une phase de création de table de hachage ( enfin plus remplissage que création ).

    de plus, le message est envoyé par glib
    GLib-ERROR **: /build/buildd/glib2.0-2.20.1/glib/gmem.c:156: failed to allocate 201326592 bytes
    Voilà, merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Points : 593
    Points
    593
    Par défaut
    Avec un système 32 bits tu peux pas dépasser 4Go mémoire vidéo comprise.

  6. #6
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par étoile de mer Voir le message
    Bonsoir à tous,
    J'ai développé un programme qui utilise beaucoup de mémoire de l'ordre de plus de 4Go, je lui fais tourner sur Ubunto 32 bits.
    donc, j' aimerais savoir s'il y a un moyen d'allouer plus de 4Go de mémoire sur un tel système ( sans devoir installé un système 64 bits )
    A peu près par définition, un OS 32 bits ne permet pas d'avoir plus de 4Go par processus. Moins en pratique car les OS se réservent généralement une partie de cet espace adressable.

    Tu peux éventuellement répartir ton application en plusieurs processus ou t'amuser à gérer du swapping toi-même pour dépasser cette limite.

    Citation Envoyé par Pouet_forever Voir le message
    Etant donné que les systèmes actuels utilisent de la mémoire virtuelle, tu ne devrais pas avoir de problèmes
    La mémoire virtuelle permet d'avoir plus de mémoire allouée que de mémoire physique, ce qui n'est pas la question ici.

    Citation Envoyé par Ubiquité Voir le message
    Avec un système 32 bits tu peux pas dépasser 4Go mémoire vidéo comprise.
    Au mieux tu es ambigu, au pire tu confonds des choses. Il y a 2 limites:
    - l'espace adressable par un processus. 32 bits donc 4 Go pour un OS 32 bits.
    - l'espace mémoire physiquement adressable. Peut être supérieur ou inférieur au précédent. En particulier les x86 ont eu la possibilité d'adresser plus de 4Go de mémoire physique avant de passer en 64 bits (voir http://en.wikipedia.org/wiki/Physical_Address_Extension)
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  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 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    C'est bien ce que je pensais.

    Moins en pratique car les OS se réservent généralement une partie de cet espace adressable.
    Autant que je sache, c'est 1 Go maximum pour l'espace kernel.

    En particulier les x86 ont eu la possibilité d'adresser plus de 4Go de mémoire physique avant de passer en 64 bits (voir http://en.wikipedia.org/wiki/Physical_Address_Extension)
    Mais si je comprends bien ... un processus tout seul, ne peut pas aller à plus de 4Go, à cause de limite des pointeurs sur 32 bits. N'y a t'il pas moyen de dire au compilateur de fournir des pointeurs sur 64bits, sur un système 32bits?
    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
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Autant que je sache, c'est 1 Go maximum pour l'espace kernel.
    C'est dépendant de l'OS

    Citation Envoyé par LittleWhite Voir le message
    N'y a t'il pas moyen de dire au compilateur de fournir des pointeurs sur 64bits, sur un système 32bits?
    Un compilateur ne permet pas de faire plus que ce que l'OS et le matériel permettent.

  9. #9
    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 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par gl Voir le message
    Un compilateur ne permet pas de faire plus que ce que l'OS et le matériel permettent.
    Entièrement d'accord ... mais je m'étais dit qu'avec une triche ... et le PAE ... ça aurait pu passer
    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.

  10. #10
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Entièrement d'accord ... mais je m'étais dit qu'avec une triche ... et le PAE ... ça aurait pu passer
    Ce n'est visible que par l'OS... évidemment on peut imaginer un compilateur qui génère du code collaborant avec un run-time adéquat pour faire ça -- au pire, pour une machine virtuelle 64 bits implémentée comme process 32 bits et swappant manuellement -- mais je n'ai jamais entendu parler de ce genre de chose que dans des situations où la mémoire était beaucoup plus restreinte.

    Autrement dit, si tu as besoin de plus de mémoire qu'adressable, tu gères ça manuellement en mettant sur disques les grosses structures (en utilisant les possibilités de mapper des fichiers en mémoire de ton OS pour te simplifier la vie)
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #11
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 373
    Points : 23 629
    Points
    23 629
    Par défaut
    Citation Envoyé par étoile de mer Voir le message
    Bonsoir à tous,
    J'ai développé un programme qui utilise beaucoup de mémoire de l'ordre de plus de 4Go, je lui fais tourner sur Ubunto 32 bits.
    donc, j' aimerais savoir s'il y a un moyen d'allouer plus de 4Go de mémoire sur un tel système ( sans devoir installé un système 64 bits ) Merci
    Ben, déjà, de quelle quantité de RAM physique ton ordinateur dispose-t-il ? Parce qu'en allouant d'un coup toute la mémoire disponible, ton ordinateur va beaucoup swapper et cela va vite devenir insupportable.

    Es-tu sûre d'avoir besoin d'autant de mémoire d'un coup ? Ne peux-tu pas plutôt stocker tes résultats dans un fichier et ne travailler que sur un petit sous-ensemble à la fois ?

Discussions similaires

  1. Problème de consommation mémoire
    Par Wizard50 dans le forum Débuter
    Réponses: 14
    Dernier message: 08/08/2012, 11h31
  2. Problème de consommation mémoire
    Par yanis97 dans le forum Websphere
    Réponses: 0
    Dernier message: 04/11/2010, 14h32
  3. Problème de trop grande consommation mémoire
    Par luckyvae dans le forum Général Java
    Réponses: 2
    Dernier message: 19/03/2008, 11h05
  4. Gros problème de consommation mémoire.
    Par Nyphel dans le forum Langage
    Réponses: 8
    Dernier message: 14/02/2007, 14h35
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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