Probleme "out of memory"

Probleme "out of memory" - Java - Programmation

Marsh Posté le 27-07-2004 à 15:57:23    

Bonjour!
 
Dans mon programme Java, j'effectue différents calculs sous Windows XP!
Au fur et à mesure de l'avancement, la mémoire restante diminue jusqu'à arriver à "Out of memory".
 
Pourtant les méthodes Freememory de java indiquent qu'il reste de la mémoire disponible pour le programme mais en fait Windows XP n'en a plus!
De plus, il n'y a pas de tableau qui ont une taille infinie, toutes less variables sont bornées.
 
Merci de m'aider.

Reply

Marsh Posté le 27-07-2004 à 15:57:23   

Reply

Marsh Posté le 27-07-2004 à 16:00:33    

tu passes un param -Xmx à ta JVM?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-07-2004 à 16:01:12    

c quoi ce param il sert à quoi?

Reply

Marsh Posté le 27-07-2004 à 16:05:29    

bin cherche
 

Code :
  1. java -X
  2.     -Xmixed           mixed mode execution (default)
  3.     -Xint             interpreted mode execution only
  4.     -Xbootclasspath:<directories and zip/jar files separated by :>
  5.                       set search path for bootstrap classes and resources
  6.     -Xbootclasspath/a:<directories and zip/jar files separated by :>
  7.                       append to end of bootstrap class path
  8.     -Xbootclasspath/p:<directories and zip/jar files separated by :>
  9.                       prepend in front of bootstrap class path
  10.     -Xnoclassgc       disable class garbage collection
  11.     -Xincgc           enable incremental garbage collection
  12.     -Xloggc:<file>    log GC status to a file with time stamps
  13.     -Xbatch           disable background compilation
  14.     -Xms<size>        set initial Java heap size
  15.     -Xmx<size>        set maximum Java heap size
  16.     -Xss<size>        set java thread stack size
  17.     -Xprof            output cpu profiling data
  18.     -Xrunhprof[:help]|[:<option>=<value>, ...]
  19.                       perform JVMPI heap, cpu, or monitor profiling
  20.     -Xdebug           enable remote debugging
  21.     -Xfuture          enable strictest checks, anticipating future default
  22.     -Xrs              reduce use of OS signals by Java/VM (see documentation)
  23.     -Xcheck:jni       perform additional checks for JNI functions
  24. The -X options are non-standard and subject to change without notice.


 
Ca donne la possibilité à la JVM d'utiliser plus de mémoire. Essaie comme ca pour voir si tu as toujours ton OutOfMemory


Message édité par darklord le 27-07-2004 à 16:05:53

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-07-2004 à 18:17:09    

tiens, j'en profite, j'osais pas ouvrir un topic pour ça : ya une limite ç ces paramètres ?
 
paske moi récemment, je bossais avec une BufferedImage de 4000*4000 et je me prenais l'exception direct, même en mettant -Xmx1000 (au pire, mon fichier de mémoire virtuelle (windows donc) il laisse 2 Go de marge, or là je pense pas que ça nécessite plus quand même)

Reply

Marsh Posté le 27-07-2004 à 18:27:53    

Y a une limite de 2Go sur les archi 32 bits pour des raisons 'physiques'.  
 
Sinon faut mettre une unité derrière hein ... Genre 128m pour 128Mo.
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-07-2004 à 18:29:59    

oui oui, j'ai oublié le m là mais je le mettais bien
 
edit :
d'ailleurs, je me demande bien pourquoi Mega Byte c'est m...


Message édité par raytaller le 27-07-2004 à 18:30:55
Reply

Marsh Posté le 27-07-2004 à 18:57:11    

attention à ne pas oublier que plus on met un gros Xmx, plus le garbage collector va être lent...

Reply

Marsh Posté le 27-07-2004 à 19:01:00    

DarkLord a écrit :

Y a une limite de 2Go sur les archi 32 bits pour des raisons 'physiques'.  
 
Sinon faut mettre une unité derrière hein ... Genre 128m pour 128Mo.


 
heu non ça serait plutot 4 gigs si tu te bases sur la valeur de 2^32 [:joce]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 27-07-2004 à 21:31:27    

schnapsmann a écrit :

heu non ça serait plutot 4 gigs si tu te bases sur la valeur de 2^32 [:joce]


 
c'est pas de cette limite là que je parlais ;)
les JVM sur archi 32bits ne supportent que 2Go de RAM


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-07-2004 à 21:31:27   

Reply

Marsh Posté le 27-07-2004 à 22:34:42    

http://library.wustl.edu/units/spec/archives/guides/sturgis-link-photos/azay-le-rideau-159.jpg


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 27-07-2004 à 22:46:51    

DarkLord a écrit :

c'est pas de cette limite là que je parlais ;)
les JVM sur archi 32bits ne supportent que 2Go de RAM


Citation :

Heaps larger than 2GB are available starting with J2SE 1.3.1.  

;)  
 
raytaller >
 -XX:+AggressiveHeap ça donne quoi chez toi ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 27-07-2004 à 23:29:03    

sérieux?  
 
tain là tu m'en apprends une bonne, je savais pas!
 
URL?


Message édité par darklord le 27-07-2004 à 23:29:53

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 27-07-2004 à 23:34:35    

allez, maintenant, je t'apprends à vérifier une citation :
http://www.google.com/search?q=%22 [...] 8&oe=utf-8
 
sinon, j'ai encore pleins de trucs encore pour te surprendre, mais pour ça il faut se marrier avec moi m'embaucher ...
 
 
edit : pssst j'ai aussi des tuyaux sur la classe java.util.Date en warez si tu veux.


Message édité par nraynaud le 27-07-2004 à 23:47:03

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-07-2004 à 09:06:36    

j'en reviens à mon sujet!
ça change rien
l'utilisation du fichier d'échange augmente continuellement

Reply

Marsh Posté le 28-07-2004 à 09:23:51    

tu as une fuite de mémoire.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-07-2004 à 09:43:25    

je sais mais comment la régler
j'utilise des curseurs, mais je les mets à NULL et je les close()
 
Sous XP, l'utilisation du fichier d'échange n'arrête pas d'augmenter.
On peut pas le vider sous java?

Reply

Marsh Posté le 28-07-2004 à 09:51:23    

Bah écoutes, je suis libre, pour 15000€ net par mois, je te le règle.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-07-2004 à 09:56:43    

Bonne blague!
et juste comme ça tu peux pas me le dire!

Reply

Marsh Posté le 28-07-2004 à 10:00:14    

bah des questions simples oui, mais vérifier une série de patterns d'utilisation des objets et des APIs, non.
 
tentes de te démerder avec google et un profiler de mémoire, ils peuvent te filer le nombre d'instances par classe au cours de l'exécution.
 
Et c'est pas une blague, je suis au chomedu.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-07-2004 à 10:01:31    

t'as quoi comme formation?

Reply

Marsh Posté le 28-07-2004 à 10:04:02    

Tiens, la question qui me fait rester au chomedû !
 
Licence info, mon CV est dans ma signature, sous le non cryptique de "la mécanique sapu".
 
(merci pour cette preuve éclatante et spontannée de ce que je me tue à répéter)


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed