Вопрос

У меня есть инструмент обработки данных Scala, который не работает с исключением java.lang.OutOfMemoryError . Утилита должна сделать пару проходов по большому файлу данных (над которым я работаю, его размер превышает 700 МБ), поэтому было бы удобно, если бы все это можно было сохранить в памяти.

Я запускаю инструмент из командной строки или из сценария Bash, используя " scala " бегун. Как мне увеличить размер кучи JVM для этого? Я попытался передать -Xmx1024m , но он не распознает этот аргумент. Я использую ночную сборку Scala 2.8.0 (r18678).

Это было полезно?

Решение

Переменная среды JAVA_OPTS используется для указания параметров, передаваемых команде java. Подробнее см. На справочной странице Scala .

Другие советы

Вы можете передавать опции в JVM через -J. Например.

scala -J-Xmx2g ...

Основываясь на предложении Джо, я посмотрел на программу scala, которая представляет собой скрипт Bash, который вызывает java с различными аргументами, специфичными для Scala. Это позволяет передавать дополнительные аргументы командной строки в Java через переменную среды JAVA_OPTS. Таким образом, вы можете увеличить размер кучи следующим образом:

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

Изменить JAVA_OPTS .

В качестве хака вы можете отредактировать файл scala / bin / scala для редактирования параметров команды java . Не очень.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top