Aumentare le dimensioni dell'heap JVM per Scala?
-
10-07-2019 - |
Domanda
Ho uno strumento di elaborazione dati Scala che non riesce con un'eccezione java.lang.OutOfMemoryError
. Lo strumento deve fare in modo che una coppia passi su un file di dati di grandi dimensioni (quello su cui sto lavorando è di oltre 700 MB), quindi sarebbe conveniente se l'intera cosa potesse essere archiviata in memoria.
Eseguo lo strumento dalla riga di comando o da uno script Bash usando " scala " corridore. Come posso aumentare le dimensioni dell'heap JVM per questo? Ho provato a passare -Xmx1024m
, ma non riconosce questo argomento. Sto usando una build notturna di Scala 2.8.0 (r18678).
Soluzione
La variabile d'ambiente JAVA_OPTS viene utilizzata per specificare le opzioni passate al comando java. Vedi la Manpage della Scala per i dettagli.
Altri suggerimenti
Puoi passare le opzioni alla JVM tramite -J. Per es.,
scala -J-Xmx2g ...
Basandomi sul suggerimento di Joe, ho esaminato il programma Scala, che è uno script Bash che chiama java con vari argomenti specifici di Scala. Consente di passare altri argomenti della riga di comando a Java tramite la variabile di ambiente JAVA_OPTS. Quindi puoi aumentare le dimensioni dell'heap in questo modo:
JAVA_OPTS="-Xmx2g" scala classname arguments...
Modifica JAVA_OPTS
.
Come hack puoi modificare il file scala / bin / scala
per modificare i parametri per il comando java
. Non carino.