Як зменшити використання пам'яті Eclipse?


81

Використання пам'яті Eclipse 3.4 проходить через дах до того моменту, коли це стає проблемою.

У мене завантажений простий проект BlackBerry, і його використання зростає майже до 400 МБ, іноді вище. Чи можна щось зробити, щоб його збити?


7
Оглядаючись зараз на це питання, я повинен би сказати, що був би радий, якби міг зменшити використання пам’яті eclipse до 400 Мб. Зараз я намагаюся зменшити його до 1 ГБ (плюс ще 300 МБ, якщо ви додасте копію Tomcat для фактичного запуску моїх проектів ...).
Жуль

5
Я пишу цей коментар з майбутнього (2018), і Eclipse бере 10 ГБ на мій поточний проект.
Бенджамін Барруа

Я щойно повернувся з 2030 року, і Eclipse займає 5 терабайт перед завантаженням проекту.
AngryHacker

Відповіді:


86

Eclipse 3.4 може споживати набагато більше пам'яті, ніж попередні версії, завдяки вбудованому модулю перевірки орфографії .

Ви можете вимкнути плагін, перейшовши до Вікна -> Налаштування -> Загальне -> Редактори -> Текстові редактори -> Орфографія та знявши прапорець біля заголовка «Увімкнути перевірку правопису».

Звичайно, поради, що пропонуються щодо використання більших розмірів купи та кращих збирачів сміття, також допоможуть вам.


12
Не працював у мене. Все ще на рівні 900-930 Мб. Я маю на увазі wtf, чи може це робити.
TheRealChx101

5
Чудова відповідь. 1 плагін вниз, близько 50 інших, про які я ніколи не чув і ніколи не використовував. (Примітка до себе, починайте використовувати IntelliJ)
8bitjunkie

10
2016 і досі стикається з цим питанням. Я маю на увазі 1 Гб мого космосу в Рамі займає затемнення. Вимкнення плагіна перевірки правопису din також не допоможе.
Пощастило

12
2017 і мій Eclipse зараз використовує 1,7 ГБ оперативної пам'яті майже без додаткових плагінів. Цьому божевіллю повинен бути кінець.
Шторм

18

Перевірка General -> Show heap statusдозволить це

Рядок стану купи затьмарення

в нижній панелі. Таким чином, ви можете вручну запустити збирач сміття, коли завгодно, натиснувши на смітник. Це не виправлення, більше схоже на обхідний шлях, але це допомогло значно зменшити використання моєї оперативної пам'яті / центрального процесора.


2
Це допомогло мені визначити, що виділені 4 Гб оперативної пам'яті для затемнення насправді не використовуються, хоча ОС показала, що використовується 4 Гб. Я зменшив обсяг оперативної пам’яті, виділеної для eclipse, щоб допомогти звільнити оперативну пам’ять для інших програм.
Navigatron

1
Як костюм Sping Tool, отриманий від затемнення. Це також працює з STS
Talib Hussain

9

В Eclipse Luna 4.4.1 намагався скоротити використання моєї пам'яті в Eclipse. Мені вдалося поголити свою з 600мб на 300мб. Я зробив наступне:

  • Вимкнено плагіни, активовані під час запуску, якими я не користувався. Windows> Налаштування> Загальне> Запуск і вимкнення

  • Закриті проекти, над якими я тоді не працював.

Знайшов підказки / поради тут: http://blog.elijaa.org/2010/09/20/tricks-to-speed-up-eclipse-php-helios-pdt-2-2/


8

Хоча ви, мабуть, могли б повозитися з конфігурацією, видаляючи різні плагіни тощо, швидше за все, вигідніше придбати більше пам'яті. Скільки у вас зараз? Я вважав би машину для розробників з обсягом пам'яті менше 2 Гб специфікацією, і я підозрюю, що багато людей це подвоїть ...


3
Не можу більше погодитися. 1 Гб оперативної пам'яті - це всього 20-30 доларів. Скільки коштує ваш час? Примусити колекцію плагінів працювати в Eclipse - це досить важка робота, без зайвого возиння з нею (можливо).
cletus

2
Я перевищую 2 Гб (це старий ноутбук). Проблема полягає в тому, що після завантаження симулятора BlackBerry, Visual Studio (веб-служби) та Chrome (щоб шукати речі в Інтернеті), ноутбук сканує. Але Eclipse - безумовно найбільший злочинець. Це було не так погано з версіями 3.3 або 3.2.
AngryHacker

2
Повністю не згоден. Машини розробників повинні мати менші характеристики, ніж передбачувані машини кінцевого користувача, щонайменше на 50% (ЦП та ОЗУ) саме з цієї причини.
finnw

4
@finnw: Що змушує вас думати, що навантаження машини розробника - це щось на зразок навантаження машини користувача? Багато програм не потребують нічого подібного до ресурсів, як IDE. Вам, звичайно, слід протестувати свою програму на машині з низьким рівнем специфікації, але це не означає розробляти її на одній. Насправді ви вже мабуть припускаєте програму на стороні клієнта. Якщо я розробляю веб-програму, націлену на мобільні пристрої, чи слід мені також розробляти мобільний телефон?
Джон Скіт,

2
@Nate: Це було пряме запитання, але дуже часто на Stack Overflow корисніше розглянути проблему, ніж питання . Якщо хтось об’єднує значення в SQL і забуває деякі лапки, прямою відповіддю на запитання буде додавання в лапки, але рішенням проблеми є параметризований SQL. Якщо OP турбується про 400 Мб, то мені здається, що загальна нестача пам'яті для машини розробника є ширшою проблемою.
Jon Skeet,

8

Сучасним версіям Eclipse потрібно досить багато оперативної пам’яті, щоб зробити своє. Але все одно слід працювати досить швидко на будь-якій сучасній машині.

Якщо припустити, що у вас достатньо фізичної пам’яті (2 ГБ - це добре, якщо у вас не запущено багато інших процесів або ви не використовуєте RAD), див. Цю статтю про використання пам’яті Eclipse, щоб отримати кілька порад щодо налаштування параметрів. Двома найпоширенішими винуватцями є занадто низький рівень Xmx та / або MaxPermSize (за замовчуванням Xmx дорівнює 256M, а за замовчуванням MaxPermSize - 64M).

Ви змінюєте значення, передаючи аргументи командного рядка або налаштовуючи eclipse.ini у місці встановлення Eclipse.

У вас повинно вийти щось подібне:

...
-vmargs
-Xms128m
-Xmx1024m 
-XX:MaxPermSize=128m

1
MaxPermSize більше немає
Ray Kim

7

Вилучити +UseG1GCопцію з eclipse.ini. Звідси я читав, що він використовується лише для об'ємної пам'яті 6 Гб.


3
Так, це спрацювало для мене. Я замінив -XX:+useG1GCна, -XX:+UseSerialGCі проблема з пам'яттю зникла. Звучить як помилка в G1GC.
Дон Сміт

1
Переключення на -XX:+UseSerialGCвирізання> 300мб. великі пальці вгору
Аман

6

Мій Eclipse займає понад 800 Мб резидента та 2 Гб віртуальної (можливо, її частина замінена). Java може бути свиною, це постійно надає Java поганої преси.

Однак є дещо, чого багато хто не знає: додатковий збирач сміття. -Xincgc Побічним ефектом є те, що він час від часу передає системі пам’ять. За замовчуванням Java просто бере і бере, а коли їй більше не потрібна пам’ять, вона зберігає її для себе. Incgc - це інша стратегія, де стає більш розумним припустити, що пам'ять може бути повернута системі, не зазнаючи проблем. Однак це може вплинути на продуктивність.

Існує багато налаштувань збору сміття. Ви також можете мати кілька потоків, які обробляють GC. Паралельний GC робить це. Не впевнений, що той повертає пам’ять назад, не думайте так.


А як змінити опцію збирача сміття на Eclipse?
Матьє

3
Справа змінилася. Зараз за замовчуванням GC в Java 8 - це генератор сміття, який також передає пам’ять системі. Ви більше не хочете знущатися з цього ...
Майк

1
У моєму випадку java 8 із задоволенням зберігає більше 3 Гб, коли фактичне використання менше 0,5 Гб, тому, на жаль, мені потрібно з цим глузувати.
nsandersen

3

Якщо для вас є велика проблема 400 Мб оперативної пам'яті, можливо, ти захочеш спробувати іншу IDE. Eclipse зберігає багато державної інформації, частина якої або більша частина якої вам насправді не потрібна. Це вибір дизайну.

Зараз у мене відкритий один і той же проект як в Eclipse, так і в QtCreator: після чистої перебудови Eclipse використовує 156 Мб оперативної пам'яті, Qt Creator задоволений 66 Мб.


2

Ви можете спробувати 64-бітну версію Eclipse з 64-бітною версією JDK для Windows 7. Це обидва спричинило деякі дивні проблеми із стороннім фреймворком, з яким мені доводиться працювати. 32-розрядна версія JRockit (зараз безкоштовна) від Oracle, здається, швидша і трохи покращає пам’ять. Це мої налаштування Eclipse.ini:

Це моя трактирна хата

-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-nosplash
org.eclipse.platform
--launcher.XXPermSize
512m
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vm
C:/Program Files (x86)/Java/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/bin
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xquickstart
-XX:+AggressiveHeap
-XX:+AggressiveOpts
-XX:+UseParallelOldGC
-XX:ParallelGCThreads=2
-XX:ThreadPriorityPolicy=1
-Xverify:none
-Xms1100m
-Xmx1100m

Я перейшов на 32-розрядний JRockit JDK, який здається трохи швидшим для Eclipse. Я вимикаю і не встановлюю більше, ніж мені потрібно. Для кожного окремого типу розробки додатків (Android, J2EE, просто Spring, ...) я маю різні установки Eclipse. Місце на жорсткому диску дешеве. Тоді я можу отримати лише потрібні плагіни для кожного з них. Я ніколи не хотів би завантажувати всі інструменти Android, якби я їх не використовував. STS також підходить лише для весняних речей, і я маю такий для роботи з OpenShift Cloud.


Я трохи заплутався, оскільки у вас спочатку є --launcher.XXMaxPermSize 512m, а потім --launcher.XXMaxPermSize 256m (і пара повторюваних рядків, тобто defaultAction, а потім nosplash разом із showplash). Чи використовує вона першу знайдену конфігурацію?
jambriz

там не повинно бути 2-го. я перевірив ще раз, і цього немає в моєму поточному. Також якщо ви використовуєте 8 різних параметрів JDK
Тім Спенн,

1

Спробуйте вимкнути плагіни eclipse. Eclipse забирав половину моєї пам'яті, коли у мене був відкритий плагін saros.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.