Je pourrais utiliser un vecteur tout simple car je sais la
taille, mais j'utilise une liste doublement cha=EEn=E9e parce que je dois
travailler avec beaucoup de donn=E9es (la taille du fichier texte qui
contient les donn=E9es est d'environ 20Mo). Je sais que le compilateur
que j'utilise est tr=E8s ancien (TurboC sous MS-DOS) mais il marche tr=E8s
bien... sauf qu'il a pas assez de m=E9moire pour les donn=E9es... m=EAme
avec la liste cha=EEn=E9e il plante.
Est-ce qu'il y a une solution pour r=E9soudre ce probl=E8me de
m=E9moire? Si non, quel compilateur peux-je utiliser pour =E9viter ce
probl=E8me (et ne pas changer tout le code!)? J'ai r=E9ussi =E0 tout mettre
dans MatLab par exemple, mais apr=E8s avoir tout chang=E9 (variables,
fonctions, etc...) il n'y a pas de probl=E8mes m=E9moire... mais il est
extr=EAmement lent!!! (m=EAme code: 10 secondes en TurboC, plus de 2
heures en MatLab)... c'es fou!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JKB
Le 07-03-2008, à propos de Problème de mémoire, Markobar écrivait dans fr.comp.lang.c :
Bonjour à tous!
Bonjour,
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très bien... sauf qu'il a pas assez de mémoire pour les données... même avec la liste chaînée il plante.
Est-ce qu'il y a une solution pour résoudre ce problème de mémoire? Si non, quel compilateur peux-je utiliser pour éviter ce problème (et ne pas changer tout le code!)? J'ai réussi à tout mettre dans MatLab par exemple, mais après avoir tout changé (variables, fonctions, etc...) il n'y a pas de problèmes mémoire... mais il est extrêmement lent!!! (même code: 10 secondes en TurboC, plus de 2 heures en MatLab)... c'es fou!
Une idée, comme ça... Utiliser un OS digne de ce nom et un compilo décent ? Avec un peu de chance, il y a une version de gcc qui tourne directement sous Windows. Par ailleurs, le TC est buggué jusqu'à la moëlle lorsqu'on essaye d'utiliser les modèles mémoire huge et large (de mémoire pour les noms) et certains résultats sont catastrophiques (repliement mémoire). Je m'en suis rendu compte à l'époque en faisant tourner des codes de divisions de polynomes sur des corps de Galois. Je dois même encore avoir les exemples de code provoquant des erreurs sur des disquettes...
Cordialement,
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
Le 07-03-2008, à propos de
Problème de mémoire,
Markobar écrivait dans fr.comp.lang.c :
Bonjour à tous!
Bonjour,
Je pourrais utiliser un vecteur tout simple car je sais la
taille, mais j'utilise une liste doublement chaînée parce que je dois
travailler avec beaucoup de données (la taille du fichier texte qui
contient les données est d'environ 20Mo). Je sais que le compilateur
que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
bien... sauf qu'il a pas assez de mémoire pour les données... même
avec la liste chaînée il plante.
Est-ce qu'il y a une solution pour résoudre ce problème de
mémoire? Si non, quel compilateur peux-je utiliser pour éviter ce
problème (et ne pas changer tout le code!)? J'ai réussi à tout mettre
dans MatLab par exemple, mais après avoir tout changé (variables,
fonctions, etc...) il n'y a pas de problèmes mémoire... mais il est
extrêmement lent!!! (même code: 10 secondes en TurboC, plus de 2
heures en MatLab)... c'es fou!
Une idée, comme ça... Utiliser un OS digne de ce nom et un compilo
décent ? Avec un peu de chance, il y a une version de gcc qui tourne
directement sous Windows. Par ailleurs, le TC est buggué jusqu'à la
moëlle lorsqu'on essaye d'utiliser les modèles mémoire huge et large
(de mémoire pour les noms) et certains résultats sont
catastrophiques (repliement mémoire). Je m'en suis rendu compte à
l'époque en faisant tourner des codes de divisions de polynomes sur
des corps de Galois. Je dois même encore avoir les exemples de code
provoquant des erreurs sur des disquettes...
Cordialement,
JKB
--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Le 07-03-2008, à propos de Problème de mémoire, Markobar écrivait dans fr.comp.lang.c :
Bonjour à tous!
Bonjour,
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très bien... sauf qu'il a pas assez de mémoire pour les données... même avec la liste chaînée il plante.
Est-ce qu'il y a une solution pour résoudre ce problème de mémoire? Si non, quel compilateur peux-je utiliser pour éviter ce problème (et ne pas changer tout le code!)? J'ai réussi à tout mettre dans MatLab par exemple, mais après avoir tout changé (variables, fonctions, etc...) il n'y a pas de problèmes mémoire... mais il est extrêmement lent!!! (même code: 10 secondes en TurboC, plus de 2 heures en MatLab)... c'es fou!
Une idée, comme ça... Utiliser un OS digne de ce nom et un compilo décent ? Avec un peu de chance, il y a une version de gcc qui tourne directement sous Windows. Par ailleurs, le TC est buggué jusqu'à la moëlle lorsqu'on essaye d'utiliser les modèles mémoire huge et large (de mémoire pour les noms) et certains résultats sont catastrophiques (repliement mémoire). Je m'en suis rendu compte à l'époque en faisant tourner des codes de divisions de polynomes sur des corps de Galois. Je dois même encore avoir les exemples de code provoquant des erreurs sur des disquettes...
Cordialement,
JKB
-- Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre masse corporelle, mais disperse à lui seul 25% de l'énergie que nous consommons tous les jours.
poulacou
On 7 mar, 02:14, Markobar wrote:
Bonjour à tous!
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très bien... sauf qu'il a pas assez de mémoire pour les données... même avec la liste chaînée il plante.
Est-ce qu'il y a une solution pour résoudre ce problème de mémoire? Si non, quel compilateur peux-je utiliser pour éviter ce problème (et ne pas changer tout le code!)? J'ai réussi à tout mettr e dans MatLab par exemple, mais après avoir tout changé (variables, fonctions, etc...) il n'y a pas de problèmes mémoire... mais il est extrêmement lent!!! (même code: 10 secondes en TurboC, plus de 2 heures en MatLab)... c'es fou!
Merci de votre aide!!
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction de la ram de ta machine) sinon tu alloueras dans la pile et la la tu es vraiment limité en taille ...
On 7 mar, 02:14, Markobar <Mark2o5...@gmail.com> wrote:
Bonjour à tous!
Je pourrais utiliser un vecteur tout simple car je sais la
taille, mais j'utilise une liste doublement chaînée parce que je dois
travailler avec beaucoup de données (la taille du fichier texte qui
contient les données est d'environ 20Mo). Je sais que le compilateur
que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
bien... sauf qu'il a pas assez de mémoire pour les données... même
avec la liste chaînée il plante.
Est-ce qu'il y a une solution pour résoudre ce problème de
mémoire? Si non, quel compilateur peux-je utiliser pour éviter ce
problème (et ne pas changer tout le code!)? J'ai réussi à tout mettr e
dans MatLab par exemple, mais après avoir tout changé (variables,
fonctions, etc...) il n'y a pas de problèmes mémoire... mais il est
extrêmement lent!!! (même code: 10 secondes en TurboC, plus de 2
heures en MatLab)... c'es fou!
Merci de votre aide!!
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction
de la ram de ta machine)
sinon tu alloueras dans la pile et la la tu es vraiment limité en
taille ...
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très bien... sauf qu'il a pas assez de mémoire pour les données... même avec la liste chaînée il plante.
Est-ce qu'il y a une solution pour résoudre ce problème de mémoire? Si non, quel compilateur peux-je utiliser pour éviter ce problème (et ne pas changer tout le code!)? J'ai réussi à tout mettr e dans MatLab par exemple, mais après avoir tout changé (variables, fonctions, etc...) il n'y a pas de problèmes mémoire... mais il est extrêmement lent!!! (même code: 10 secondes en TurboC, plus de 2 heures en MatLab)... c'es fou!
Merci de votre aide!!
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction de la ram de ta machine) sinon tu alloueras dans la pile et la la tu es vraiment limité en taille ...
Markobar
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction de la ram de ta machine) sinon tu alloueras dans la pile et la la tu es vraiment limité en taille ...
Ce que je fais c'est un malloc de la taille des données à enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce pas?
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction
de la ram de ta machine)
sinon tu alloueras dans la pile et la la tu es vraiment limité en
taille ...
Ce que je fais c'est un malloc de la taille des données à
enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce
pas?
allocation dynamique : tu utilises la mémoire dans le tas ( fonction de la ram de ta machine) sinon tu alloueras dans la pile et la la tu es vraiment limité en taille ...
Ce que je fais c'est un malloc de la taille des données à enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce pas?
Thierry B.
--{ Markobar a plopé ceci: }--
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
Essayer avec Djgpp, de mémoire http://www.delorie.com/
-- Il y a des bégonias dans la cheminée de Marcel. Je répète, il y a des bégonias dans la cheminée de Marcel. --{ fr.misc.divers }--
--{ Markobar a plopé ceci: }--
Je pourrais utiliser un vecteur tout simple car je sais la
taille, mais j'utilise une liste doublement chaînée parce que je dois
travailler avec beaucoup de données (la taille du fichier texte qui
contient les données est d'environ 20Mo). Je sais que le compilateur
que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
Essayer avec Djgpp, de mémoire http://www.delorie.com/
--
Il y a des bégonias dans la cheminée de Marcel.
Je répète, il y a des bégonias dans la cheminée de Marcel.
--{ fr.misc.divers }--
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
Essayer avec Djgpp, de mémoire http://www.delorie.com/
-- Il y a des bégonias dans la cheminée de Marcel. Je répète, il y a des bégonias dans la cheminée de Marcel. --{ fr.misc.divers }--
Stephane Legras-Decussy
"Markobar" a écrit dans le message de news:
Ce que je fais c'est un malloc de la taille des données à enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce pas?
avec turbo C il y avait farmalloc( ) pour les gros objets... tu testes si le pointeur renvoyé est NULL avant de t'en servir ?
de toute façon c'est pas standard et périmé...
telecharge code::blocks et tout fonctionnera comme il faut....
"Markobar" <Mark2o5bar@gmail.com> a écrit dans le message de news:
d4445a56-bbfd-46b2-a0dd-30710fa65852@e31g2000hse.googlegroups.com...
Ce que je fais c'est un malloc de la taille des données à
enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce
pas?
avec turbo C il y avait farmalloc( ) pour les gros objets...
tu testes si le pointeur renvoyé est NULL avant de t'en servir ?
de toute façon c'est pas standard et périmé...
telecharge code::blocks et tout fonctionnera
comme il faut....
Ce que je fais c'est un malloc de la taille des données à enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce pas?
avec turbo C il y avait farmalloc( ) pour les gros objets... tu testes si le pointeur renvoyé est NULL avant de t'en servir ?
de toute façon c'est pas standard et périmé...
telecharge code::blocks et tout fonctionnera comme il faut....
Charlie Gordon
"Thierry B." a écrit dans le message de news:
--{ Markobar a plopé ceci: }--
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
Essayer avec Djgpp, de mémoire http://www.delorie.com/
www.cygwin.com
-- Chqrlie
"Thierry B." <tth@prout.stex.invalid> a écrit dans le message de news:
uib8a5-oms.ln1@prout.stex...
--{ Markobar a plopé ceci: }--
Je pourrais utiliser un vecteur tout simple car je sais la
taille, mais j'utilise une liste doublement chaînée parce que je dois
travailler avec beaucoup de données (la taille du fichier texte qui
contient les données est d'environ 20Mo). Je sais que le compilateur
que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
Essayer avec Djgpp, de mémoire http://www.delorie.com/
Je pourrais utiliser un vecteur tout simple car je sais la taille, mais j'utilise une liste doublement chaînée parce que je dois travailler avec beaucoup de données (la taille du fichier texte qui contient les données est d'environ 20Mo). Je sais que le compilateur que j'utilise est très ancien (TurboC sous MS-DOS) mais il marche très
Essayer avec Djgpp, de mémoire http://www.delorie.com/
www.cygwin.com
-- Chqrlie
Markobar
avec turbo C il y avait farmalloc( ) pour les gros objets... tu testes si le pointeur renvoyé est NULL avant de t'en servir ?
de toute façon c'est pas standard et périmé...
telecharge code::blocks et tout fonctionnera comme il faut....
Merci beaucoup pour vos infos!! Je crois qu'avec code::blocks je vais m'en sortir.
avec turbo C il y avait farmalloc( ) pour les gros objets...
tu testes si le pointeur renvoyé est NULL avant de t'en servir ?
de toute façon c'est pas standard et périmé...
telecharge code::blocks et tout fonctionnera
comme il faut....
Merci beaucoup pour vos infos!! Je crois qu'avec code::blocks je vais
m'en sortir.
avec turbo C il y avait farmalloc( ) pour les gros objets... tu testes si le pointeur renvoyé est NULL avant de t'en servir ?
de toute façon c'est pas standard et périmé...
telecharge code::blocks et tout fonctionnera comme il faut....
Merci beaucoup pour vos infos!! Je crois qu'avec code::blocks je vais m'en sortir.
poulacou
On 7 mar, 11:06, Markobar wrote:
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction de la ram de ta machine) sinon tu alloueras dans la pile et la la tu es vraiment limité en taille ...
Ce que je fais c'est un malloc de la taille des données à enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce pas?
oui et tester la valeur de retour de pointeur pour savoir si l'allocation c'est bien passé : TRES IMPORTANT et si liste doublement chainées, pour chaque chaine tu as une allocation.
On 7 mar, 11:06, Markobar <Mark2o5...@gmail.com> wrote:
Tu alloues bien ton vecteur en dynamique ??
allocation dynamique : tu utilises la mémoire dans le tas ( fonction
de la ram de ta machine)
sinon tu alloueras dans la pile et la la tu es vraiment limité en
taille ...
Ce que je fais c'est un malloc de la taille des données à
enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce
pas?
oui et tester la valeur de retour de pointeur pour savoir si
l'allocation c'est bien passé : TRES IMPORTANT
et si liste doublement chainées, pour chaque chaine tu as une
allocation.
allocation dynamique : tu utilises la mémoire dans le tas ( fonction de la ram de ta machine) sinon tu alloueras dans la pile et la la tu es vraiment limité en taille ...
Ce que je fais c'est un malloc de la taille des données à enregistrer à chaque fois. C'est comme ça qu'il faut allouer, n'est-ce pas?
oui et tester la valeur de retour de pointeur pour savoir si l'allocation c'est bien passé : TRES IMPORTANT et si liste doublement chainées, pour chaque chaine tu as une allocation.