Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[java] Plugin pour Firefox (abandon)
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
kwenspc
Advocate
Advocate


Joined: 21 Sep 2003
Posts: 4954

PostPosted: Wed Jun 18, 2008 10:13 am    Post subject: Reply with quote

Neuromancien wrote:
Contrairement à ce que dit geekounet le problème ne vient pas du swap... :? Aucun doc sur l'installation de Icedtea ne parle de problème de mémoire...

Problème d'espace disque dans /var ptet? (quoique l'erreur parle ne tas alors ça peut pas vraiment être ça.) Ton système est à jour? T'as essayé les deux versions de java majeures pour compiler icedtea (utilises java-config pour passer de l'un à l'autre): 5 et 6?
_________________
membre officieux du SAV Ati GEntoo
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Wed Jun 18, 2008 10:15 am    Post subject: Reply with quote

Bio wrote:
geekounet wrote:
Neuromancien wrote:
geekounet wrote:
Aller un petit effort :
Code:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

C'est tout de même explicite...

Pas pour moi, je ne sais pas quoi faire avec ça. Je laisse tomber Icedtea, je vais essayer de trouver une autre solution... Je commence à regretter d'avoir choisi l'amd64, c'est beaucoup d'ennuis pour pas grand chose.

Out of memory, un gamin de 10 ans te dirait que ça a un rapport avec la mémoire, un gamin de 12 ans te le traduit par « manque de mémoire ». Heureusement qu'ya des cours d'anglais à l'école pour le minimum vital hein. Et depuis 4 ans que t'utilises Gentoo, tu trouves pas que tu te fous un peu de notre gueule en ne sachant pas interprêter un truc aussi trivial et classique ?
Bref, tu manques de ram pour le compiler, et ça pourrait se régler en augmentant ta swap, bien que ça ramerai, ça compilera.


Je ne voudrais pas m'immiscer dans cette petite flame-war mais en tant qu'utilisateur Java je me devais de réagir. En augmentant la RAM ou la swap ça ne résoudra pas le problème. En effet la machine virtuelle Java adresse un certain espace mémoire de la machine physique (le heap size). Les applications Java peuvent ensuite accéder à ce heap géré par la VM. L'exception OutOfMemory se produit quand l'application a besoin de plus de mémoire que la VM n'en a adressée.

Dans ce cas 2 solutions s'offrent à vous : augmenter la heap size via l'option -Xmx comme indiqué précédemment, par exemple

Code:
java -Xmx1024m MaClasse


ou alors modifier l'application Java pour qu'elle soit moins gourmande (pas toujours possible). On préférera, la plupart des cas, augmenter le heap size.

Heap size et mémoire physique sont 2 choses complétement distinctes. Si vous avez un système avec 500M de RAM dispo et que vous avez une VM qui adresse 1G de mémoire ça va fonctionner. Evidemment vous allez swapper et donc obtenir des perf médiocres. In fine c'est toujours l'OS qui reste responsable de l'allocation mémoire et quand il n'en a plus de dispo il swap.

Par contre, dans le cas d'un système avec 4G de RAM et une VM adressant 1G, si votre appli Java à besoin de 1.5G vous allez obtenir l'exception java.lang.OutOfMemory

Et comment t'expliquerais que la VM en allouerai moins chez lui que chez les autres ? Alors que la compilation se passe exactement pareil chez tout le monde, même ebuild, mêmes sources, et le binaire Java produit est indépendant de la machine.
Back to top
View user's profile Send private message
Neuromancien
l33t
l33t


Joined: 03 Dec 2003
Posts: 867

PostPosted: Wed Jun 18, 2008 10:23 am    Post subject: Reply with quote

geekounet wrote:
Bio wrote:
Heap size et mémoire physique sont 2 choses complétement distinctes. Si vous avez un système avec 500M de RAM dispo et que vous avez une VM qui adresse 1G de mémoire ça va fonctionner. Evidemment vous allez swapper et donc obtenir des perf médiocres. In fine c'est toujours l'OS qui reste responsable de l'allocation mémoire et quand il n'en a plus de dispo il swap.

Par contre, dans le cas d'un système avec 4G de RAM et une VM adressant 1G, si votre appli Java à besoin de 1.5G vous allez obtenir l'exception java.lang.OutOfMemory

Et comment t'expliquerais que la VM en allouerai moins chez lui que chez les autres ? Alors que la compilation se passe exactement pareil chez tout le monde, même ebuild, mêmes sources, et le binaire Java produit est indépendant de la machine.

En tous cas, en augmentant simplement le swap ça ne fonctionne pas.
_________________
emerge --info
dmesg
lspci
.config
Back to top
View user's profile Send private message
kopp
Advocate
Advocate


Joined: 09 Apr 2004
Posts: 2885
Location: Grenoble, France

PostPosted: Wed Jun 18, 2008 10:54 am    Post subject: Reply with quote

On t'a proposé une commande pour augmenter la taille du tas alloué par la machine virtuelle java. Tu l'as essayé ?
Back to top
View user's profile Send private message
Neuromancien
l33t
l33t


Joined: 03 Dec 2003
Posts: 867

PostPosted: Wed Jun 18, 2008 11:36 am    Post subject: Reply with quote

kopp wrote:
On t'a proposé une commande pour augmenter la taille du tas alloué par la machine virtuelle java. Tu l'as essayé ?

Je dois peut-être crier pour me faire comprendre... C'EST UNE OPTION DE JAVA EN LIGNE COMMANDE. COMMENT JE PASSE CETTE OPTION DANS LE CAS D'UNE COMPILATION AVEC EMERGE ??? :!: :!: :!: :!: Faut-il modifier l'ebuild ou une variable d'environnement Java ?
_________________
emerge --info
dmesg
lspci
.config
Back to top
View user's profile Send private message
Zazbar
Apprentice
Apprentice


Joined: 26 Jul 2005
Posts: 279
Location: Paris Time

PostPosted: Wed Jun 18, 2008 11:49 am    Post subject: Reply with quote

essayes peut etre avec un alias

Code:
 alias java=`/path/to/java -Xmx512m`



Ca devait fonctionner ..
et en effet, ton problème vient du heap Size qui n'est pas bien calibré (par défaut je crois que ca fait 2Megs .... a confirmer) ...


Mes 0,02 cents
_________________
Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et montrer qu'on l'est. -- P. Dac - Pensées
Back to top
View user's profile Send private message
Neuromancien
l33t
l33t


Joined: 03 Dec 2003
Posts: 867

PostPosted: Wed Jun 18, 2008 12:16 pm    Post subject: Reply with quote

Zazbar wrote:
essayes peut etre avec un alias

Code:
 alias java=`/path/to/java -Xmx512m`



Ca devait fonctionner ..
et en effet, ton problème vient du heap Size qui n'est pas bien calibré (par défaut je crois que ca fait 2Megs .... a confirmer) ...

OK je vais essayer ça...
_________________
emerge --info
dmesg
lspci
.config
Back to top
View user's profile Send private message
Bio
Apprentice
Apprentice


Joined: 17 Mar 2003
Posts: 197
Location: Geneva which should be in Switzerland...

PostPosted: Wed Jun 18, 2008 1:36 pm    Post subject: Reply with quote

geekounet wrote:
Et comment t'expliquerais que la VM en allouerai moins chez lui que chez les autres ? Alors que la compilation se passe exactement pareil chez tout le monde, même ebuild, mêmes sources, et le binaire Java produit est indépendant de la machine.


Il y a forcément quelque chose de différent, de là à trouver quoi... JRE? ebuild? arch? paramètrage...
_________________
I'm all in !
Back to top
View user's profile Send private message
Zazbar
Apprentice
Apprentice


Joined: 26 Jul 2005
Posts: 279
Location: Paris Time

PostPosted: Wed Jun 18, 2008 2:10 pm    Post subject: Reply with quote

Pour répondre a moi-même la taille par défaut est de 64 megs (java 1.5) et elle etait de 2 megs avec la 1.3.

man java wrote:

-Xmxn Specifies the maximum size, in bytes, of the memory allocation
pool. This value must be a multiple of 1024 greater than 2 MB.
Append the letter k or K to indicate kilobytes or the letter m
or M to indicate megabytes. The default value is 64MB. Examples:

-Xmx83886080
-Xmx81920k
-Xmx80m



Donc il faudrait que tu mettes plus de 64 megs (avec 512 tu devrais plus avoir de prob d'espace quand meme ...)
_________________
Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et montrer qu'on l'est. -- P. Dac - Pensées
Back to top
View user's profile Send private message
Neuromancien
l33t
l33t


Joined: 03 Dec 2003
Posts: 867

PostPosted: Wed Jun 18, 2008 8:21 pm    Post subject: Reply with quote

Zazbar wrote:
essayes peut etre avec un alias

Code:
 alias java=`/path/to/java -Xmx512m`


L'alias ne fonctionne pas. En effet, la compilation est lancée par /var/tmp/portage/dev-java/icedtea-6.1.2/work/icedtea6-1.2/bootstrap/jdk1.6.0/bin/java qui est un lien vers /user/bin/java, qui lui-même est un lien vers la JVM de Sun (1.6.0_06). Je cherche donc un autre moyen de modifier cette option.

Quand je compile, à l'écran je vois :
Code:
if ! test -d /var/tmp/portage/dev-java/icedtea-6.1.2/work/icedtea6-1.2/bootstrap/jdk1.6.0 ; \
   then \
     /usr/bin/ecj-3.3 -nowarn -J-Xmx512m -g -d lib/hotspot-tools \
            -source 1.5 \
            -sourcepath rt:hotspot-tools:openjdk/jdk/src/share/classes:openjdk/jdk/src/solaris/classes:openjdk/langtools/src/share/classes:openjdk/jaxp/src/share/classes:openjdk/corba/src/share/classes:openjdk/jaxws/src/share/classes:generated \
            -bootclasspath '' @hotspot-tools-source-files.txt ; \
   else \
     /var/tmp/portage/dev-java/icedtea-6.1.2/work/icedtea6-1.2/bootstrap/jdk1.6.0/bin/javac -J-Xmx512m -g -d lib/hotspot-tools \
       -source 1.5 \
       -sourcepath rt:hotspot-tools:openjdk/jdk/src/share/classes:openjdk/jdk/src/solaris/classes:openjdk/langtools/src/share/classes:openjdk/jaxp/src/share/classes:openjdk/corba/src/share/classes:openjdk/jaxws/src/share/classes:generated \
       -bootclasspath '' @hotspot-tools-source-files.txt ; \
   fi

Cela ne signifie-t-elle pas que l'option Xmx512m est déjà activée ?
_________________
emerge --info
dmesg
lspci
.config
Back to top
View user's profile Send private message
rhaamo
n00b
n00b


Joined: 20 Sep 2007
Posts: 17

PostPosted: Wed Jun 18, 2008 9:51 pm    Post subject: Reply with quote

J'apporte mon petit grain de sel :P vu que moi aussi j'ai le même problème :/

L'alias ne fais rien aussi, et j'ai aussi le out of memory ^^

/me pense que java est hanté :lol:
Back to top
View user's profile Send private message
Zazbar
Apprentice
Apprentice


Joined: 26 Jul 2005
Posts: 279
Location: Paris Time

PostPosted: Thu Jun 19, 2008 7:55 am    Post subject: Reply with quote

Neuromancien wrote:
Cela ne signifie-t-elle pas que l'option Xmx512m est déjà activée ?

Apparement si ...

Au vu du bout de log que tu nous a filé .. apparement le compilateur utilisé est soit ecj soit javac (du jdk) .... tu es sur que c'est javac qui est appelé dans ton cas ?

Sinon il y aussi apparement la possibilité de le compiler avec ecj (le compilateur d'eclipse) ... ca serait peut etre à essayer ...
_________________
Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et montrer qu'on l'est. -- P. Dac - Pensées
Back to top
View user's profile Send private message
r4ph431
n00b
n00b


Joined: 20 Nov 2007
Posts: 5

PostPosted: Tue Jun 24, 2008 12:06 pm    Post subject: Reply with quote

Bonjour,
j'ai le même problème (512mo de ram et 1go de swap sur amd64)
Alors j'ai tenté de profiter de la présence de "bootstrap_fix-heapsize.diff" pour y placer MEMORY_LIMIT à :
-J-Xmx256m
-J-Xmx384m
-J-Xmx1024m
L'option est prise en compte, mais aucune de ces valeurs n'évite ce "heap space" error.
free -m
Code:
             total       used       free     shared    buffers     cached
Mem:           496        483         13          0         11        233
-/+ buffers/cache:        238        258
Swap:         1027          0       1027

df -h|grep var
Code:
/dev/hda8             2,6G  1,8G  861M  68% /var/tmp

cat /etc/make.conf|grep CCAC
Code:
CCACHE_SIZE="1G"

java-config -v
Code:
java version "1.6.0_06"


Si quelqu'un dispose d'un petit indice salvateur :)
Back to top
View user's profile Send private message
Zazbar
Apprentice
Apprentice


Joined: 26 Jul 2005
Posts: 279
Location: Paris Time

PostPosted: Tue Jun 24, 2008 12:55 pm    Post subject: Reply with quote

Il y a deux autres options qui permettent de configurer la taille de mémoier allouée a java ... essayes celles-ci aussi :

Code:
Setting the new generation heap size
-XX:NewSize   
Use this option to set the New generation Java heap size. Set this value to a multiple of 1024 that is greater than 1MB. As a general rule, set -XX:NewSize to be one-fourth the size of the maximum heap size. Increase the value of this option for larger numbers of short-lived objects.
Be sure to increase the New generation as you increase the number of processors. Memory allocation can be parallel, but garbage collection is not parallel.

Setting the maximum New generation heap size
-XX:MaxNewSize
Use this option to set the maximum New generation Java heap size. Set this value to a multiple of 1024 that is greater than 1MB.



Tu peux rajouter ces options lors de l'appel à java dans l'ebuild voir si ca fonctionne mieux (en mettant des valeurs assez hautes si tu as de la ram :) ) .. ca te donnerait un truc du genre :
Code:

java -XX:NewSize=256m -XX:MaxNewSize=256m -Xmx .................

_________________
Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et montrer qu'on l'est. -- P. Dac - Pensées
Back to top
View user's profile Send private message
CryoGen
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1426
Location: Bamako - Mali - Afrique

PostPosted: Tue Jun 24, 2008 7:56 pm    Post subject: Reply with quote

Hum vu ici : https://forums.gentoo.org/viewtopic-p-5065787.html#5065787

Quote:
ok, there was some makefile code for java heap sizing. hardwired '-J-Xmx512m' for now.
edit dev-java/icedtea/files/bootstrap_fix-heapsize-so-we-get-happy-please-thanks.diff to increase it if it still fails with 512m.
though, 512m should suffice.

_________________
- CryoGen` on #gentoofr@irc.freenode.net
- ~amd64 / KDE4
- I'm the bone of my sword...
Back to top
View user's profile Send private message
r4ph431
n00b
n00b


Joined: 20 Nov 2007
Posts: 5

PostPosted: Thu Jun 26, 2008 10:30 am    Post subject: Reply with quote

Sur vos conseils... (j'ai d'ailleurs trouvé une option du nom de MaxHeapSize qui me semble correspondre à merveille)
cependant, après avoir testé différentes valeurs (sachant que MaxNewSize = 4 * NewSize) et :
Code:
swapon -s
Filename    Type      Size         Used     Priority
/dev/hda1  partition 1052248   313956  -1

Code:
cd '/var/tmp/portage/dev-java/icedtea-6.1.2/work/icedtea6-1.2' &&

/var/tmp/portage/dev-java/icedtea-6.1.2/work/icedtea6-1.2/bootstrap/jdk1.6.0/bin/javac -J-XX:NewSize=256m -J-XX:MaxNewSize=1024m -J-Xmx1024m -J-XX:MaxHeapSize=1024m -g -d lib/hotspot-tools -source 1.5 -sourcepath rt:hotspot-tools:openjdk/jdk/src/share/classes:openjdk/jdk/src/solaris/classes:openjdk/langtools/src/share/classes:openjdk/jaxp/src/share/classes:openjdk/corba/src/share/classes:openjdk/jaxws/src/share/classes:generated -bootclasspath '' @hotspot-tools-source-files.txt ||

/var/tmp/portage/dev-java/icedtea-6.1.2/work/icedtea6-1.2/bootstrap/jdk1.6.0/bin/javac -J-XX:NewSize=64m -J-XX:MaxNewSize=256m -J-Xmx256m -J-XX:MaxHeapSize=256m -g -d lib/hotspot-tools -source 1.5 -sourcepath rt:hotspot-tools:openjdk/jdk/src/share/classes:openjdk/jdk/src/solaris/classes:openjdk/langtools/src/share/classes:openjdk/jaxp/src/share/classes:openjdk/corba/src/share/classes:openjdk/jaxws/src/share/classes:generated -bootclasspath '' @hotspot-tools-source-files.txt

Exception in thread "main" java.lang.OutOfMemoryError : Java heap space ... rien n'y fait.
A noter qu'en observant avec top, je ne vois pas vraiment d'utilisation fondamentalement différente de ma mémoire (j'ai testé à tout hasard sans -J (bien que l'appel à javac le nécessite pour passer les param correctement à java) mais pas de résultat probant...
ex avec -J-XX:NewSize=64m :
Code:
vir res shr S %cpu %mem time command
 436m 174m 8216 S  162 35.0   0:22.70 java


ex avec -XX:NewSize=64m :
Code:
vir res shr S %cpu %mem time command
363m 155m 8220 S  166 31.4   0:38.52 java


J'espère mes interrogations légitimes mais espèrant plus encore pouvoir les résoudre
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum