Augmenter la taille de tas de 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 en sorte que quelques passages sur un fichier de données volumineux (celui sur lequel je travaille dépasse 700 Mo), il serait donc pratique que tout soit stocké en mémoire.

Je lance l’outil à partir de la ligne de commande ou d’un script Bash en utilisant le runner “scala“. Comment puis-je augmenter la taille du segment de mémoire 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).

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

Vous pouvez passer des options à la JVM via -JEg,

 scala -J-Xmx2g ... 

Basé sur la suggestion de Joe, j’ai regardé 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. Ainsi, vous pouvez augmenter la taille du tas comme ceci:

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

Modifier JAVA_OPTS .

En tant que hack, vous pouvez éditer le fichier scala/bin/scala pour éditer les parameters de la commande java . Pas beau.