web-dev-qa-db-fra.com

Augmenter la taille du segment de mémoire JVM pour Scala?

J'ai un outil de traitement de données Scala qui échoue avec une exception Java.lang.OutOfMemoryError. L'outil doit faire quelques passes sur un fichier de données volumineux (celui sur lequel je travaille dépasse 700 Mo), il serait donc pratique que tout puisse être stocké en mémoire.

Je lance l'outil à partir de la ligne de commande ou d'un script Bash à l'aide du coureur "scala". Comment puis-je augmenter la taille de la pile 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).

47
Jay Conrod

La variable d’environnement Java_OPTS permet de spécifier les options transmises à la commande Java. Voir la page de manuel Scala pour plus de détails.

25
Synesso

Vous pouvez transmettre des options à la machine virtuelle Java via l'option -J. Par exemple.,

scala -J-Xmx2g ...
111
Geoffrey Irving

Sur 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 transmettre des arguments de ligne de commande supplémentaires à Java via la variable d'environnement Java_OPTS. Donc, vous pouvez augmenter la taille du tas comme ceci:

Java_OPTS="-Xmx2g" scala classname arguments...
21
Jay Conrod

Éditez Java_OPTS.

2
Daniel C. Sobral

En guise de hack, vous pouvez éditer le fichier scala/bin/scala pour éditer les paramètres de la commande Java. Pas beau.

0
Joe