didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
31 oct. 2006 à 22:19
rom1v
Messages postés29Date d'inscriptionlundi 20 décembre 2004StatutMembreDernière intervention21 septembre 2007
-
1 nov. 2006 à 16:17
Bonjour a tous,
le plus grand nombre que l'on puisse affect a une variable de type Integer est bien " 2147483647" ?
alors si oui, pourquoi est que quand je declar un vector comme ceci ,
Vector V = new Vector(2147483647);
j'otient une exception comme ca
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Vector.(Vector.java:111)
at java.util.Vector.(Vector.java:124)
at GenerateurPasses.main(GenerateurPasses.java:11)
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 31 oct. 2006 à 22:44
Salut:
Que ce que tu va faire avec un tel tableau?
Une simple calcul te donne pourquoi tu obtient une telle exception :
CapacitéMax = 2147483647 * 4
Tu dépasse non pas la capacité de la machine virtuelle mais aussi celle de la machine.
Tu peux paramétrer la taille de la capacité de mémoire utilisée par la JVM.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 1 nov. 2006 à 13:02
De toute façon, ce que tu essaie de faire n'est pas possible
2147483647 * 4 octets 8589934588 octets 8191 Go !!!
Donc a moins d'attendre une bonne dizaine d'année, le temps que les barettes de 2 To sortent, tu ne pourras pas ! Que ce soit un tableau ou un vecteur, le problème ne vient pas de la limite de la taille du vecteur (ou du tableau), mais bel et bien de l'espace mémoire demandé pour stocker les informations.
Donc il va te falloir trouver un autre moyen de faire !
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 31 oct. 2006 à 22:54
c'est a dire que dans mon prog, je permet a l'utilisateur de saisir des nombre de type int et ensuite je les traite par differentes valeur alant jusqu'a 2147483647.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 31 oct. 2006 à 23:03
Salut:
As tu besoin vraimant de ce très grand nombre?
Dès que ton programme dépasse la taille allouée par la JVM une exception est levée.
Solution:
utilise :
> java -Xms <taille>
pour ajuster la mémoire allouée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 1 nov. 2006 à 08:51
Hum, tout dépend de ce que fait ton algo, mais je pense que stocker uniquement ce qu'à saisie ton user sera plus efficace que de stocker tout ce qu'il peut saisir !
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 1 nov. 2006 à 12:38
Est ce que si j'utilise votre solution " java -Xms <taille> " le programme reste portable. (je pense que non , il faudrait que j'effectue cette opperation a chaque fois que je voudrais utiliser le programme).
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 1 nov. 2006 à 13:12
j'ai essayer de faire 2147483647 / 4 et j'ai obtenu 618709 et ca marche.
je pense que d'apres ce que vous venez de dire, je ne pourrait pas aller plus haut.