moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 2011
-
30 mars 2008 à 16:39
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 2011
-
31 mars 2008 à 17:24
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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 mars 2008 à 19:20
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.
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 30 mars 2008 à 17:35
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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 mars 2008 à 17:44
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++
Vous n’avez pas trouvé la réponse que vous recherchez ?
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 30 mars 2008 à 19:09
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.
moumouteb
Messages postés192Date d'inscriptiondimanche 16 janvier 2005StatutMembreDernière intervention28 février 201110 31 mars 2008 à 17:24
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.