Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Настройки памяти Java для IntelliJ 11 / 15 сообщений из 15, страница 1 из 1
13.11.2013, 18:28:09
    #38463903
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Всем здрасте. Работаю с этой оболочкой - так получилось. Не так давно столкнулся с проблемой (до этого пользовался установками по умолчанию) - при работе с большими объемами данных выпрыгивает сообщение об ошибке: java.lang.OutOfMemoryError: Java heap space . Порылся в интернете, но в IntelliJ слишком много разных настроек, запутался в них окончательно, а результата не добился. Сначала про теперешнюю систему: Windows 7 Professional 64, аж целых 20 Гб оперативки, при старте IntelliJ64.exe в Help -> About видно, что виртуальная машина в этом случае JDK 1.7.0 HotSpot 64-Bit Server VM.

По умолчанию были такие настройки:

idea64.exe.vmoptions

-Xms128m
-Xmx800m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-ea

Settings -> Compiler -> Java Compiler -> Maximum heap size: 128

Run -> Edit Configurations -> VM Options: -Xms512m -Xmx1024m -XX:-UseGCOverheadLimit

Еще раз по нехорошей ситуации: в двойном цикле обрабатываются данные из списка элементов, потом заносятся в файл, который с помощью POI должен быть сохранен как Excel-файл. В первом цикле количество проходов всего 4, во втором - довольно большое и в этом вся загвоздка. Когда элементов 100 или 200, то все создается нормально, но начиная с 500, молчу уже про 1000, на предпоследнем проходе уже тормоза, на последнем - черепашья скорость и после агонии вышеозначенное сообщение. Не подскажете, где что настроить, чтобы нормально отрабатывало? Насколько я понимаю, ресурсов более чем достаточно или нет? Заранее благодарю за возможную помощь.
...
Рейтинг: 0 / 0
13.11.2013, 18:33:14
    #38463910
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Вот в этом месте в основном надо настраивать, это то что использует ваш цикл когда запускается
Run -> Edit Configurations -> VM Options: -Xms512m -Xmx1024m -XX:-UseGCOverheadLimit

В idea64.exe.vmoptions можете уменьшать, если идея вместе с запускаемым проектом не умещается в оперативе
...
Рейтинг: 0 / 0
13.11.2013, 18:37:20
    #38463915
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Выше приведены настройки 3х разных процессов
- Самой IDE
- Компилятора
- Вашего проекта
Первые два к описанию проблемы отношения не имеют.

-Xmx1024m в настройках запуска вашего проекта лимитирует используемую память одним гигабатом. Поэтому 20Гб вашей оперативки ему побоку. Кстати а зачем вообще столько на рабочей станции???

По поводу обработки КЭТ, это уже надо код смотреть. А так же запускать JDK/bin/jvisualvm и анализировать заполнение кучи.
Поставьте -Xmx4096m для того чтобы работало быстрее.
Но анализировать потребление памяти лучше на маленьких кучах до 1 Гб
...
Рейтинг: 0 / 0
13.11.2013, 18:41:18
    #38463919
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Лагман , а можно чуточку поподробнее? IntelliJ стопудово умещается в оперативе. То есть Settings -> Compiler -> Java Compiler -> Maximum heap size не трогать вообще? А как тогда изменить строку для VM при запуске? Я менял idea64.exe.vmoptions так:

-Xms1024m
-Xmx2048m

а потом Run -> Edit Configurations -> VM Options так: -Xms1024m -Xmx2048m -XX:-UseGCOverheadLimit

Так не пашет, выдает при попытке запуска ошибку:

Error occurred during initialization of VM
Could not reserve enough space for object heap
...
Рейтинг: 0 / 0
13.11.2013, 18:47:14
    #38463932
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
BlazkowiczВыше приведены настройки 3х разных процессов
- Самой IDE
- Компилятора
- Вашего проекта
Первые два к описанию проблемы отношения не имеют
Ага, вот уже кое-что понятно, благодарю.

автор-Xmx1024m в настройках запуска вашего проекта лимитирует используемую память одним гигабатом. Поэтому 20Гб вашей оперативки ему побоку.
А жаль

авторКстати а зачем вообще столько на рабочей станции???
Не знаю, достался такой комп, зачем столько памяти в него вбухали - для меня тоже загадка.

Поставьте -Xmx4096m для того чтобы работало быстрее
О проблеме невозможности запустить с -Xmx, превышающим 1 Гб, написал в предыдущем посте.
...
Рейтинг: 0 / 0
13.11.2013, 18:52:06
    #38463944
Лагман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Полуламер,


ПолуламерCould not reserve enough space for object heap
Jvm пытается себе сразу аллоцировать память в размере указанном в Xms. Если у системы нет её, то не запускается. Видимо, несмотря на то что у вас там 20Гб, они чем-то уже заняты?
Проверьте ещё что у вас в File-> project structure стоит 64битная JDK
...
Рейтинг: 0 / 0
13.11.2013, 19:04:38
    #38463961
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
ЛагманПроверьте ещё что у вас в File-> project structure стоит 64битная JDK
Что-то не могу увидеть там 64-битность.
...
Рейтинг: 0 / 0
13.11.2013, 19:05:32
    #38463965
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
ПолуламерError occurred during initialization of VM
Could not reserve enough space for object heap
1. Поставить 64 битную Java
2. Поставить Oracle JRockit, тогда можно будет 3 Gb на 32 битах использовать )))
...
Рейтинг: 0 / 0
13.11.2013, 19:15:38
    #38463981
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Leonid Kudryavtsev, я в начальном сообщении написал, что 64-битная IntelliJ использует JDK 1.7.0 HotSpot 64-Bit Server VM, разве это не то, что нужно?
...
Рейтинг: 0 / 0
13.11.2013, 20:19:27
    #38464056
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Если бы JDK и JRE использовалось 64 битное, то ошибки связанной с памятью не было IMHO & AFAIK.

1. Какая JDK выбрана для проекта?

/На проекте правой кнопкой мышки, Module Setting, Project, Project SDK/

2. Попытайся в настройках Run -> Edit configuration -> Application указать Use alternative JRE и выбрать точно 64 бит JRE
...
Рейтинг: 0 / 0
14.11.2013, 12:10:28
    #38464762
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
В Project SDK изначально было 1.7. Выбрал JRE 1.7.0 для Use alternative JRE, презапустил IntelliJ - увы, не помогло. Проверил версию VM вручную:

авторC:\Program Files (x86)\JetBrains\IntelliJ IDEA 11.1.5\bin>java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

Что еще ей надо, никак не могу понять.
...
Рейтинг: 0 / 0
14.11.2013, 12:56:28
    #38464893
Настройки памяти Java для IntelliJ 11
Полуламер C:\Program Files (x86)
Что еще ей надо, никак не могу понять.

Ей нужна 64-битная JVM, которая инсталируется в папку Program Files без "(x86)"
...
Рейтинг: 0 / 0
14.11.2013, 13:01:03
    #38464905
Настройки памяти Java для IntelliJ 11
календареведЕй нужна 64-битная JVM, которая инсталируется в папку Program Files без "(x86)"
Или 64-битная IDEA? Вообще, какой смысл использовать именно 32-битную?
...
Рейтинг: 0 / 0
14.11.2013, 13:10:55
    #38464931
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Запустите проект. Подцепитесь к нему из jvisualvm и посмотрите детальную инфу о том какая JVM исполняется.
Варианта всего два, либо что-то не так с запуском и процесс 32-битный. Кстати это даже в TaskManager можно увидеть.
Либо дело действительно в отсутствии достаточного непрерывного места в памяти, что при 20Гб более чем странно.
...
Рейтинг: 0 / 0
14.11.2013, 13:49:26
    #38465020
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Настройки памяти Java для IntelliJ 11
Уважаемый Blazkowicz , уже в который раз рассыпаюсь в благодарностях! :) Сравнил информацию при запуске из IntelliJ и из командной строки и обнаружил, что IntelliJ тычется в java-каталог с 32-версией VM. Подцепил нужный SDK в настройках для проекта и смог наконец-то запустить с параметрами -Xms4096m -Xmx8192m, чего безуспешно добивался большую часть вчерашнего дня. Всем большое спасибо за помощь в решении проблемы!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Настройки памяти Java для IntelliJ 11 / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]