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

Ada Discussion :

manque de mémoire à la compilation


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut manque de mémoire à la compilation
    bonjour,
    J'ai un petit problème compilation avec une unité contenant un tableau de 125000 éléments construit comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       type T_Word is
          record
             Id      : Positive;
             Pattern : access String;
          end record;
     
       type T_Word_Table is array (Positive range <>) of T_Word;
     
     
       Glossary : T_Word_Table(1..125653) :=
          (
            .../...
          );
    A la compilation gnatmake me dit :

    "gnat1.exe: out of memory allocating 19208 bytes"

    Auriez vous une idée s'il vous plaît, pour que je puisse compiler. Merci

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    C'est le même phénomène qu'en C, tu ne peux pas allouer un tableau de grande taille sur la pile. Tu es obligé de passer par le tas.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    C'est le même phénomène qu'en C, tu ne peux pas allouer un tableau de grande taille sur la pile. Tu es obligé de passer par le tas.
    Bonjour Promu@Id,

    Passer par le tas... je comprends pas ce que ça signifie.

    Mais j'ai déjà fais ce tableau sur Gnu/Linux.

    Pas moyen d'augmenter la pile ou quelque chose du genre ?

  4. #4
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Mais j'ai déjà fais ce tableau sur Gnu/Linux.

    Pas moyen d'augmenter la pile ou quelque chose du genre ?
    Augmenter la pile peut-être, mais compliqué parce que dépendant du système (donc tout sauf portable).

    Passer par le tas... je comprends pas ce que ça signifie
    Allocation statique -> pile
    Allocation dynamique -> tas

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par PRomu@ld Voir le message
    Allocation statique -> pile
    Allocation dynamique -> tas
    Au risque de paraître ridicule, je vais dire que je comprends toujours pas.

    Que puis-je faire ?

    Désolé!

  6. #6
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Au risque de paraître ridicule, je vais dire que je comprends toujours pas.

    Que puis-je faire ?
    Euh là, je dirais retourner en cours

    Code Allocation statique : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    type t_array is array( natural range <> ) of integer ;
    my_tab : t_array( 1..10 );

    Code Allocation dynamique : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    type t_array is array( natural range <> ) of integer ;
    type ptr_array is access t_array ;
    my_tab : ptr_array := new t_array( 1..10 ) ;

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ok ! Merci bien Promu@Id. Je vais essayer comme ça.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    j'ai fait un pointeur sur un tableau donc, et d'une par ça n'a pas résolu le problème sous Windows mais sous Linux il doit falloir deux fois plus de temps qu'a l'époque, qui prenait déjà une heure.

    Voila, je suis toujours à la recherche...

Discussions similaires

  1. Plantage sans doute par manque de mémoire
    Par verbose dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 15/11/2007, 12h18
  2. Manque de Mémoire Virtuelle
    Par mayiba21 dans le forum Windows XP
    Réponses: 4
    Dernier message: 12/12/2006, 09h53
  3. [W2000 Pro] Manque de mémoire virtuelle empêche la connexion
    Par 2Eurocents dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 30/11/2006, 20h20
  4. Manque de mémoire
    Par GO dans le forum C++
    Réponses: 1
    Dernier message: 25/09/2006, 16h30
  5. Manque de mémoire virtuelle sur Win2000 pro
    Par annedjomo dans le forum Windows Serveur
    Réponses: 7
    Dernier message: 02/03/2005, 10h16

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