2009-09-17 22 views
43

Possiedo uno strumento di elaborazione dati Scala che non riesce con un'eccezione java.lang.OutOfMemoryError. Lo strumento deve fare in modo che un paio passi su un grande file di dati (quello su cui sto lavorando è di oltre 700MB), quindi sarebbe conveniente se l'intera cosa potesse essere memorizzata.Aumentare la dimensione heap JVM per Scala?

Eseguo lo strumento dalla riga di comando o da uno script Bash utilizzando il runner "scala". Come posso aumentare la dimensione 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).

risposta

24

La variabile d'ambiente JAVA_OPTS viene utilizzato per specificare le opzioni passate al comando java. Vedi lo Scala manpage per i dettagli.

0

Come modifica è possibile modificare il file scala/bin/scala per modificare i parametri per il comando java. Non carino.

+1

Che ... potrebbe funzionare. –

+0

Sì, ma sto aspettando che qualcun altro risponda. Voglio sapere anche ... – Joe

2

Modifica JAVA_OPTS.

21

Sulla base del suggerimento di Joe, ho guardato il programma scala, che è uno script Bash che chiama java con vari argomenti specifici di Scala. Permette di passare argomenti a riga di comando aggiuntivi a Java attraverso la variabile d'ambiente JAVA_OPTS. Così è possibile aumentare la dimensione heap in questo modo:

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

È possibile passare opzioni alla JVM tramite -J. Ad es.,

scala -J-Xmx2g ... 
+0

Grazie mille! +1 – gd1

+0

Sto usando anche questo, grazie! – Benoit

+0

Soluzione semplice e veloce, grazie! Mi chiedo perché la pagina man non lo mostri? – markc

Problemi correlati