La taille maxiamle de JVM

ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 4 janv. 2013 à 15:32
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 - 8 janv. 2013 à 11:22
Bonjour;
J'ai un probléme de dépassecement de capacité de tas en java. J'ai fixer la taille maximale de jvm à -Xmx1580m.
Je ne peux pas mettre plus. J'ai 4 Go de Ram, que 3.23 Go sont utilisable, j'utilise java 6 et windows 7. Je veux savoir est ce que la taille de ram a une importance sur la taille de jvm?çàd si j'augmente la taille de Ram à 8 Go par exemple, est ce que je peux allouer plus de mémoire au jvm ? ou bien il y a une taille maximale à ne pas deppaser malgré la taille de Ram ? J'ai essayé d'augmenter la Ram en utilisant une clé usb de 4 Go, mais tjrs l'exeption. Est ce quelqu'un peut m'aider ou me donner des conseilles.
Merci d'avance

8 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 janv. 2013 à 15:47
Salut,

Vu ce qui est dit sur le site d'oracle, tu as déjà attend la limite.*


The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limit can be much lower. On most modern 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris kernels the address space is limited to 2G. On 64-bit operating systems running the 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems.

As of Java SE 6, the Windows /3GB boot.ini feature is not supported.

If your application requires a very large heap you should use a 64-bit VM on a version of the operating system that supports 64-bit applications. See Java SE Supported System Configurations for details.
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
4 janv. 2013 à 16:26
Merci. Mon systéme d'exploitation est au 64 bit, ç.à.d que VM est au 64 bit d'aprés ta ciation, n'est ce pas ?. Je veux savoir, si j'augmente la Ram à 8 Go par exemple, mon probléme sera résolu o u non?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
7 janv. 2013 à 09:32
Tu peux augmenter la RAM à 8Go, par contre, je suis incapable de te dire si cela va résoudre ton problème. Il est possible que ce soit encore insuffisant.

Pourquoi ton traitement est il si gourmand en mémoire ? Tu as un traitement récursif ? Tu peux peut être essayer d'optimiser ton code aussi non ?
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
7 janv. 2013 à 13:23
Merci pour l'aide Julien. Oui, j'ai une fonction récursive. J'ai optimisé le code; le probléme maintenant dépend de la performance de processeur. Ma fonction consiste à calculer des combinaisons de l'ordre de 3^293 par exemple. Moi je voudrai plus mais déjà avec 2^293 mon programme a pris plus de 3 heurs et il n'a pas me donner les résultats. Mon processeur a une vitesse de 2.60 GHz. Est ce que je dois acheter un autre pc avec un processeur plus performant ? puisque je pense qu'on ne peux pas augmenter les performances de processeur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
7 janv. 2013 à 13:51
Essayes de recorder ça pour te passer des récursions et tu régleras le problème. C'est assez lourd à gérer. Même si les nombres sont grands, tu ne devrais pas avoir besoin d'autant de mémoire pour faire un calcul de ce genre.
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
7 janv. 2013 à 18:17
Salut,

2^293, tu peux faire une croix dessus. Même si tu pouvais traiter 1 cas par cycle processeur, il te faudrait 2^293 cycles même à raison de 2^40 cycles / seconde, il te faudrait encore 2^253 secondes soit bien plus que l'âge de l'univers. Je le répète, assure-toi d'avoir bien compris le problème, parce que tel quel : il n'est pas calculable.
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
8 janv. 2013 à 07:58
Voilà qui résout ton problème je pense...

Désolé
0
cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
8 janv. 2013 à 11:22
Ça fait un moment que tu travailles sur ce problème et j'ai l'impression que c'est la galère. Tu as un énoncé ?
0
Rejoignez-nous