Подтвердить что ты не робот

PHPStorm/Webstorm увеличивают объем памяти до более чем 512 МБ

Я использую PHPStorm под Win7 64bit с 64bit Java (latest version I guess) и работаю в настоящее время в безумно большом и хаотичном проекте. Существует много классов, содержащих 10k LOC и более. Поэтому в моем PHPStorm время от времени заканчивается память.

Я получаю этот приятный диалог Out-of-Memory, предлагающий увеличить мои настройки памяти. В настоящее время я установлен в PhpStorm.exe.vmoptions:

-server
-Xms128m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=64m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50

Проблема заключается в следующем: когда я увеличиваю свою память, которая будет использоваться в этом файле, я получаю следующую ошибку при запуске программы:

Не удалось создать JVM: Код ошибки -4

Я googled вокруг, но никто, кажется, не хочет, чтобы память была больше, чем 512MB.

Кто-нибудь знает, что я могу сделать, чтобы использовать PHPStorm без лишних хлопот?

Конечно, я могу reset кеш, но это не постоянное решение, верно?

Я где-то читал, что добавление этой строки в мой vmoptions - хорошая идея, но я не вижу никакой разницы:

-server
....
-XX:MinHeapFreeRatio=15
4b9b3361

Ответ 1

Убедитесь, что PhpStorm использует 64-разрядную Java и не входит в комплект (32-разрядный). Вы проверяете, что в Help | About.

Вообще говоря: с 64-битной Java вам не нужно менять это значение, поскольку оно работает немного по-другому по сравнению с 32-разрядным.

1) PhpStorm поставляется в комплекте с x86 Java, и это первый, который он пытается; только тогда он ищет другие установки Java - проверьте PhpStorm.bat для деталей (какие переменные среды и в каком порядке). Определив одну из этих переменных среды (которая укажет на вашу 64-разрядную установку Java), вы можете указать, что PhpStorm использовать вместо связанного.

2) PhpStorm v8 (в настоящее время на стадии EAP) поставляется с 64-битными конкретными файлами: вы должны использовать PhpStorm64.exe, а не PhpStorm.exe (то же самое для .vmoptions file - это должно быть PhpStorm64.exe.vmoptions).

Я не уверен, как PhpStorm v7 работает с 64-битной Java - никогда не пробовал это так себе.


Выбор версии JDK для IDE будет выполняться в

https://intellij-support.jetbrains.com/entries/23455956-Selecting-the-JDK-version-the-IDE-will-run-under

Ответ 2

Изменение настроек памяти для PHPStorm теперь имеет опцию меню: введите описание изображения здесь

Ответ 3

После прочтения этого сообщения я переключился на 64-битную версию (после установки правильного JDK) и увеличил выделенную память до 2 ГБ, чтобы закрыть ее. Но я все еще попадаю в потолок, замораживает et.c.

В конце концов понял, что у меня была папка bower_components. Папки, подобные этому, с количеством javascript файлов et.c. будет в основном есть все бараны в мире (я также исключаю папку node_modules сейчас, ту же историю). Поэтому я щелкнул правой кнопкой мыши папку > Отметить каталог как > Exluded. После некоторой сборки мусора столкнулся с объемом памяти PhpStorm до 5-600 мб, что кажется разумным.

Ответ 4

PhpStorm 2016.1 и новее

Как и в случае с PhpStorm 2016.1 вместо WEBIDE_JDK_64, следует использовать переменную среды JAVA_HOME, которая должна указывать на ваш путь JVM.

Версии, предшествующие PhpStorm 2016.1

Как и в ответе @LazyOne, как и в PhpStorm v8 (уже выпущено), вы можете использовать PhpStorm64.exe. Но я не смог найти никакого описания того, как указать для него путь JVM. Документ, в котором объясняется, как выбрать версию JDK, кажется немного устаревшим.

После некоторых исследований я обнаружил, что вы должны создать переменную среды WEBIDE_JDK_64, которая должна указывать на 64-битный путь установки JRE. После этого вы сможете запустить PhpStorm64.exe.

По умолчанию он устанавливает максимальную память в 750mb. Если вам нужно больше, вы можете изменить C:\Program Files (x86)\JetBrains\PhpStorm 8\bin\PhpStorm64.exe.vmoptions. Лучшей идеей, однако, было бы отредактировать файл vmoptions пользователя. Просто скопируйте C:\Program Files (x86)\JetBrains\PhpStorm 8\bin\PhpStorm64.exe.vmoptions в %USERPROFILE%\.IntelliJIdea12\idea.vmoptions и установите -Xmx750m на более высокое значение.

Ответ 5

Просто File > Invalidates Caches / Restart... работает для меня. 👌😀

Ответ 6

Я нашел файл журнала в приложении, который вырос с нескольких килобайт до более 2 ГБ в течение нескольких секунд из-за ошибки. Webstorm пытался проиндексировать этот файл журнала объемом 2 ГБ и исчерпал память. Удаление файла журнала решило проблему (а затем исправление ошибки не позволило журнальному файлу возрастать).

До этого я также попытался запустить x64 JDK и увеличил XMX до 2048. Но в итоге 64-разрядная среда с 2048 МБ была недостаточной (хотя 512 МБ всегда было достаточно раньше).