Настройки памяти Eclipse при получении “Пространства "кучи" Java” и “Из Памяти”

в вашем запросе ajax, добавив:

dataType: "jsonp",

после строки:

type: 'GET',

должен решить эту проблему ..

надеюсь, что эта помощь вам поможет

58
задан Brandon 2 December 2008 в 14:28
поделиться

9 ответов

-xms является памятью запуска (в VM, запускаются),-xmx является максимальной памятью для VM

  • eclipse.ini: память для VM, выполняющего затмение
  • установка jre: память для программ Java, запущенных от затмения
  • catalina.sh: память для Вашего сервера кота
52
ответ дан Vinze 7 November 2019 в 15:34
поделиться

Существует несколько различных настроек памяти на серьезном основании.

установка памяти затмения состоит в том, потому что Eclipse является большой программой Java. если Вы собираетесь иметь огромную сумму файлов, открытых в нескольких проектах, то Вы собираетесь хотеть дать Eclipse больше поршня. Это - проблема только о системах "предприятия" обычно персональное использование привычки проектов что много дескрипторов файлов или интерфейсов.

установка JRE состоит в том, сколько поршня для разрешения среды выполнения Java при выполнении проекта. Это - вероятно, то, которое Вы хотите при выполнении некоторой памяти hogging приложение. Я выполнил математические проекты, которые были нужны в нескольких концертах поршня и должны были действительно сказать JRE, что это было хорошо, JVM продолжала предполагать, что моя программа была в некотором текучем безудержном состоянии, но я делал его нарочно и должен был сказать JVM конкретно, что было позволено использовать.

Тогда установка памяти Catalina для Tomcat сервера приложений. Тому серверу нужна память для каждого пользователи приложения и параллельные пользователи. Это смешивается с числом JRE, потому что Ваш проект мог бы быть веб-приложением, и я не уверен, какому нужна память.

1
ответ дан Karl 7 November 2019 в 15:34
поделиться

В первую очередь, я предлагаю, чтобы Вы сузили проблему, в которую компонент бросает "Из Исключения Памяти".

Это могло быть:

  1. сам Eclipse (относительно которого я сомневаюсь)
  2. Ваше приложение под [1 115] Tomcat

параметры JVM -xms и -xmx представляют "кучу", "запускают память" и "максимальную память". Забудьте, "запускают память". Это не собирается помогать Вам теперь, и необходимо только изменить этот параметр, если Вы уверены, что Ваше приложение использует этот объем памяти быстро.

В производстве, я думаю единственный параметр, который можно изменить, -xmx под файлами Catalina.bat или Catalina.sh. Но если Вы тестируете свое веб-приложение непосредственно от Eclipse с настроенной средой отладки Tomcat, можно просто перейти к "Настройкам отладочного процесса"> "Tomcat Apache"> "Аргументы"> "аргументы VM" и устанавливать -xmx там.

Что касается оптимального -xmx для 2 ГБ, это во многом зависит Вашей среды и количества запросов, которые могло бы взять Ваше приложение. Я попробовал бы значения от 500 МБ до 1 ГБ. Проверьте свой предел "зоны" виртуальной памяти ОС и предел самой JVM.

14
ответ дан Jeremy Stein 7 November 2019 в 15:34
поделиться

Если Вы видите из памяти, рассматриваете, вероятно ли это: Вам действительно нужно так много памяти? Если не (т.е. когда у Вас нет огромных объектов и если Вы не должны создавать миллионы объектов по некоторым причинам), возможности состоят в том, что у Вас есть утечка памяти.

В Java, это означает, что Вы сохраняете ссылку на объект где-нибудь даже при том, что Вам больше не нужен он. Частые причины для этого забывают звонить близко () на ресурсах (файлы, соединения с БД, операторы и наборы результатов, и т.д.).

, Если Вы подозреваете утечку памяти, используйте профилировщика для нахождения, какой объект занимает всю доступную память.

0
ответ дан Aaron Digulla 7 November 2019 в 15:34
поделиться

В нашем случае обнаружены 2 проблемы.

  1. Память останавливалась, и мы в обязательном порядке установили для размера разрешения запуска более высокое значение. Я предполагаю, что он использовал память быстрее, чем мог ее выделить. В нашем случае. -XX: PermSize = 256 м -XX: MaxPermSize = 256m

  2. Мы используем Clearcase, а в Eclipse использовался подключаемый модуль от Rational Clearcase SCM (7.0.0.2). Плагин был причиной сбоя Eclipse. И на данный момент мы не знаем почему, но было бы полезно узнать об этом другим. Был вынужден отключить его.

3
ответ дан 24 November 2019 в 19:05
поделиться

Также есть некоторые проблемы с памятью в Eclipse, но для нас это происходит не при фактическом запуске, а когда Eclipse выполняет обновление (вручную или автоматически), или при попытке его собрать, eclipse аварийно завершает работу и отключается.

В журналах есть некоторая информация:

Heap
 def new generation   total 36352K, used 11534K [0x10040000, 0x127b0000, 0x14f00000)
  eden space 32320K,  29% used [0x10040000, 0x10994c30, 0x11fd0000)
  from space 4032K,  49% used [0x123c0000, 0x125aed80, 0x127b0000)
  to   space 4032K,   0% used [0x11fd0000, 0x11fd0000, 0x123c0000)
 tenured generation   total 483968K, used 125994K [0x14f00000, 0x327a0000, 0x50040000)
   the space 483968K,  26% used [0x14f00000, 0x1ca0ab38, 0x1ca0ac00, 0x327a0000)
 compacting perm gen  total 58112K, used 57928K [0x50040000, 0x53900000, 0x60040000)
   the space 58112K,  99% used [0x50040000, 0x538d2160, 0x538d2200, 0x53900000)
No shared spaces configured.

Даже если я настрою eclipse.ini для использования этих значений, похоже, что он не применяется.

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
1024M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vmargs
-Dosgi.requiredJavaVersion=1.5
-XX:MaxPermSize=256m
-Xms512m
-Xmx1024m

Все, кто видел эту проблему раньше?
Добавлю, что используемый проект очень большой.

1
ответ дан 24 November 2019 в 19:05
поделиться

Требуется модель соединения. Я бы назвал его «Курсовый год», потому что тогда вам не нужно менять имя таблицы, но вы также можете переместить все эти данные в другую модель, если хотите. Ваши модели будут настроены следующим образом:

class Courses < ActiveRecord::Base
  has_many :courses_years
  has_many :years, :through => :courses_years
end

class Years < ActiveRecord::Base 
  has_many :courses_years
  has_many :courses, :through => :courses_years
end

class CoursesYears < ActiveRecord::Base
  belongs_to :course
  belongs_to :year
end

Всякий раз, когда вам нужны атрибуты (в данном случае обязательные), вы обычно получаете к ним доступ через модель соединения. Если вы хотите просто найти все курсы, которые являются обязательными для данного года, ответ на вопрос здесь .

-121--2459658-

Практически никому не приходится иметь дело с трафиком Google. Я бы сказал, что практически никогда не стоит следовать примеру Google в оптимизации, потому что они просто не применяются в реальном мире.

-121--4349244-

Мы столкнулись с проблемой кучного пространства с помощью Ant, пытаясь построить очень большой проект Flex, который не может быть решен путем увеличения памяти, выделенной Ant, или путем добавления вилки = true param. Он оказался быть ошибкой в Flex 3.4.0 sdk. Я наконец выяснил это после опроса устройств для их sdk-версии и возврата к 3.3.0.

Для любопытных.

Я отследил ошибку до файла интерфейса, в который была добавлена дополнительная пара доступа «get/set maskTrackSkin». Ошибка пространства кучи наступила, если к интерфейсу были добавлены какие-либо дополнительные функции, и, чтобы ухудшить ситуацию, интерфейс не был в проекте, получившем ошибку пространства кучи. Надеюсь, это кому-то поможет.

0
ответ дан 24 November 2019 в 19:05
поделиться

Tomcat в Eclipse не использует catalina.sh или bat. Чтобы настроить память для управляемого Tomcat, используйте настройки виртуальной машины в конфигурации запуска сервера

2
ответ дан 24 November 2019 в 19:05
поделиться

У меня есть следующие настройки:

-vmargs
...
-Duser.name=...
-XX:PermSize=256m
-XX:MaxPermSize=256m
-Xmn128m
-Xms256m
-Xmx768m

Eclipse произвел сбой до того, как я установил PermSize равным MaxPermSize.

1
ответ дан 24 November 2019 в 19:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: