53 votes

Comment augmenter la taille de la mémoire vive de la JVM ?

Je reçois l'erreur suivante :

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at SQLite.Vm.step(Native Method)
        at SQLite.Database.get_table(Database.java:314)
        at SQLite.JDBC2z.JDBCStatement.executeQuery(JDBCStatement.java:120)
        at SQLite.JDBC2z.JDBCStatement.executeQuery(JDBCStatement.java:168)
        at TestData.readData(TestData.java:21)
        at TestData.main(TestData.java:41)

82voto

oliholz Points 5089

Les options suivantes permettent de modifier la taille du tas.

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xmx256m TestData.java

15voto

Ankit Gupta Points 166

Paramètres de la ligne de commande Java

-Xms: initial heap size
-Xmx: Maximum heap size

si vous utilisez Tomcat. Mise à jour CATALINA_OPTS variable d'environnement

export CATALINA_OPTS=-Xms16m -Xmx256m;

13voto

spot35 Points 878

Lancez le programme avec -Xms=[taille] -Xmx -XX:MaxPermSize=[taille] -XX:MaxNewSize=[taille]

Par exemple -

-Xms512m -Xmx1152m -XX:MaxPermSize=256m -XX:MaxNewSize=256m

9voto

pap Points 11466

En utilisant le -Xmx lorsque vous invoquez java.

Voir http://download.oracle.com/javase/6/docs/technotes/tools/Windows/java.html

7voto

michaelliu Points 1200

Utilisez -Xms1024m -Xmx1024m pour contrôler la taille de votre tas (1024m n'est qu'une démonstration, le nombre exact dépend de la mémoire de votre système). Définir une taille de tas minimale et maximale identique est généralement une bonne pratique car la JVM n'a pas besoin d'augmenter la taille du tas au moment de l'exécution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X