Bonjour,
J'ai une incompréhension dans la manière dont la mémoire se comporte, ou pour les règles des tableaux à deux dimensions,
ou ??
Voici
PC en windows 10 en 64bits mémoire 8,00 Go
Visual Studio 2017
Je crée une application où je dois charger un grand nombre de données en mémoire et les traiter.
Il s'agit en réalité d'un process LCS ( Longest Common Subsequence ) qui s'applique non pas à des chaînes de caractères, mais à des fichiers ; d'où le chargement en mémoire.
Dans une application x64, je définit mon tableau ainsi
J'ai un message erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 lmax = 40000 rmax = 40000 Dim LCS(lmax + 1 , rmax + 1 ) as integer
Mais, et c'est là où c'est curieux, si je codeUne exception non gérée du type 'System.OutOfMemoryException' s'est
produite dans LCS.exe
Informations supplémentaires*: Les dimensions du tableau dépassent la
plage prise en charge.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 lmax = 20000 rmax = 20000 Dim LCS(lmax + 1, rmax + 1) As Integer ' Dim LCS3(20000 + 1, 20000 + 1) As Integer Dim LCS4(20000 + 1, 20000 + 1) As Integer Dim LCS5(20000 + 1, 20000 + 1) As Integer
Je n'ai pas de problème d'allocation.
En termes de mémoire, et si je ne trompe pas, les deux sont équivalents.
Information supplémentaire : après l'exécution du dernier code, je suis à 83% de mémoire avec quelques autres applications ouvertes et qui forcément consomment aussi.
Une idée
Merci
Pierre








Répondre avec citation
Partager