54 votes

Augmenter la taille du tas de la JVM pour Scala ?

J'ai un outil de traitement de données Scala qui échoue avec une erreur de type java.lang.OutOfMemoryError exception. L'outil doit faire quelques passages sur un gros fichier de données (celui sur lequel je travaille fait plus de 700 Mo), il serait donc pratique que l'ensemble puisse être stocké en mémoire.

J'exécute l'outil depuis la ligne de commande ou depuis un script Bash en utilisant le runner "scala". Comment puis-je augmenter la taille du tas de la JVM pour cela ? J'ai essayé de passer -Xmx1024m mais il ne reconnaît pas cet argument. J'utilise une version nocturne de Scala 2.8.0 (r18678).

121voto

Geoffrey Irving Points 1275

Vous pouvez passer des options à la JVM via -J. Par exemple,

scala -J-Xmx2g ...

26voto

Synesso Points 8865

La variable d'environnement JAVA_OPTS est utilisée pour spécifier les options transmises à la commande java. Voir la page Page de manuel Scala pour les détails.

22voto

Jay Conrod Points 12375

Sur la base de la suggestion de Joe, j'ai examiné le programme scala, qui est un script Bash qui appelle java avec divers arguments spécifiques à Scala. Il permet de passer des arguments de ligne de commande supplémentaires à Java via la variable d'environnement JAVA_OPTS. Ainsi, vous pouvez augmenter la taille du tas comme ceci :

JAVA_OPTS="-Xmx2g" scala classname arguments...

2voto

Daniel C. Sobral Points 159554

Modifier JAVA_OPTS .

-1voto

Joe Points 18328

En guise d'astuce, vous pouvez modifier le scala/bin/scala pour modifier les paramètres de l'option java commande. Pas joli.

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