Très gros tableau et débugage. [Résolu]

Signaler
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Bonjour.

Voila mon problème :
J'alloue dynamiquement un tableau en quatre dimensions qui peut contenir jusqu'à 500 million de "double". Dois-je prendre des dispositions particulières?
De plus je me pose cette question car quand je débug le programme avec VS 2007 lors de la fermeture du programme il faut que j'attende très longtemps avant qu'il ai fini de tout détruire, est-ce que cela arrivera aussi sans le débuger? Si oui que faut-il faire, si cela vient du débuger que puis-je faire?

Merci d'avance pour votre aide.

<hr size="2" width="100%" />Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.

6 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
Si tu as des double en tableau, tu ne vas pas les mettre en ASCII er rconvertir à chaque fois. Tu écris direct en binaire et tu recharges aussi directement dispo pour calculs.

Une libération tableau (free() ou VirtualFree()) est instantané, sinon il y a un prob de conception dans ton prog.

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
Tu es bien certain que ton alloc de 500 millions de double réussit ??? c'est presque 4 Go donc théoriquement impossible sur unWindows 32 bits.

ciao...
BruNews, MVP VC++
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
Pour le moment je n'ai tester qu'avec 1 000 000 mais ça me fait quand même les problèmes évoqués ci-dessu.
Et par contre à ce que je viens de comprendre j'aurais des problèmes avec des tableaux plus gros?

<hr width="100%" size="2" />
Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
Hors OS Server surlesquels on peut postionner le flag 3Go, un Windows client ne peut laisser plus de 2 Go de mémoire dans l'espace USER d'un processus. La moitié haute des 4 Go totaux de l'espace mémoire est réservée au kernel et tout ce qui peut interagir en Ring0.

Si tu dois traiter d'énormes masses de données, faut utiliser le disque dur comme intermédiaire. 

ciao...
BruNews, MVP VC++
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
Utiliser le disque dur c'est via un fichier temporaire? (type fichier texte) ou alors on peut allouer de la mémoire sur le disque? (type mémoire paginée)

Et sinon avec mes tableaux plus petits pourquoi ai-je ce problème en fin de débugage?

Merci.

<hr width="100%" size="2" />
Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
Merci.

Pour le problème de débugage c'était bien que j'oubliais de désalouer la mémoire (et vu les quantités mise en jeu...).
Sinon pour le problème de taille j'ai remplacé les doubles par des entiers (je gagne le double de place donc) et j'ai limité la taille maximale.

<hr size="2" width="100%" />Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.