Я пытаюсь аварийно завершить работу моей программы (запущенной в IntelliJ) с OutOfMemoryException
:
def OOMCrasher(acc: String): String = {
OOMCrasher(acc + "ADSJKFAKLWJEFLASDAFSDFASDFASERASDFASEASDFASDFASERESFDHFDYJDHJSDGFAERARDSHFDGJGHYTDJKXJCV")
}
OOMCrasher("")
Однако она просто работает очень долго.Я подозреваю, что на заполнение всех гигабайт памяти, выделенной JVM, строкой уходит очень много времени.Поэтому я смотрю, как заставить IntelliJ выделять меньше памяти для JVM.Вот что я пробовал:
В конфигурации запуска -> Параметры виртуальной машины:
--scala.driver.memory 1k || --driver.memory 1k
Обе эти причины вызывают сбои:
Unrecognized option: --scala.driver.memory
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Я такжепопытался выставить опции в Редактировать конфигурации -> Аргументы программы.Это приводит к тому, что программа снова запускается в течение очень долгого времени, не давая OutOfMemoryException
.
РЕДАКТИРОВАТЬ:
Я приму любой ответ, который успешно объясняет, как выделить меньше памяти для программы, поскольку это основной вопрос.
ОБНОВЛЕНИЕ:
Изменение функции на:
def OOMCrasher(acc: HisList[String]): HisList[String] = {
OOMCrasher(acc.add("Hi again!"))
}
OOMCrasher(Cons("Hi again!", Empty))
, где HisList
- простая реализация LinkedList, а также запуск с-Xmx3m
вызвал разыскиваемое исключение.