2009-09-17 13 views
43

Mam narzędzie przetwarzania danych Scala, które nie działa z wyjątkiem wyjątek java.lang.OutOfMemoryError. Narzędzie musi wykonać kilka przejść przez duży plik danych (ten, nad którym pracuję ma ponad 700 MB), więc byłoby to wygodne, gdyby cała rzecz mogła być przechowywana w pamięci.Zwiększ wielkość sterty JVM dla Scala?

Uruchomę narzędzie z wiersza poleceń lub ze skryptu Bash za pomocą programu "scala". Jak mogę zwiększyć wielkość sterty maszyny JVM? Próbowałem przekazać -Xmx1024m, ale nie rozpoznaje tego argumentu. Używam nocnej kompilacji Scala 2.8.0 (r18678).

Odpowiedz

24

Zmienna środowiskowa JAVA_OPTS jest używany do określenia przekazywane do komendy java opcje. Szczegółowe informacje można znaleźć w Scala manpage.

0

Jako narzędzie hakerskie można edytować plik scala/bin/scala, aby edytować parametry dla polecenia java. Nie ładne.

+1

To ... może działać. –

+0

Tak, ale czekam, aż ktoś inny odpowie. Chcę też wiedzieć ... – Joe

2

Edytuj JAVA_OPTS.

21

Bazując na sugestii Joe, przyjrzałem się scala programowi, który jest skryptem Bash, który wywołuje java z różnymi argumentami specyficznymi dla Scala. Umożliwia przekazywanie dodatkowych argumentów wiersza poleceń do środowiska Java za pośrednictwem zmiennej środowiskowej JAVA_OPTS. Więc można zwiększyć rozmiar sterty tak:

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

Możesz przekazać opcje do JVM przez -J. Np.,

scala -J-Xmx2g ... 
+0

Dziękuję bardzo! +1 – gd1

+0

Używam tego również, dzięki! – Benoit

+0

Szybkie i łatwe rozwiązanie, dziękuję! Zastanawiam się, dlaczego strona podręcznika nie pokazuje tego? – markc

Powiązane problemy