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
Ответы
Ответ 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 МБ всегда было достаточно раньше).