Как ускорить работу IntelliJ IDEA
Появился у меня, благодаря работодетелю, новый рабочий ноут. 32 Гб оперативы, i7 девятого поколения и вот это вот всё.
И всё было хорошо, пока я не подумал, а почему бы и не упороться?
Что было сделано? Сначала нашёл программу для создания RAM диска. Есть платные и бесплатные решения. Я воспользовался ImDisk Toolkit.
В целом простая софтина, которой указываешь размер, тип файловой системы и букву диска (по умолчанию R:\ )
Есть проблема с Windows 10 (может и раньше). В ней по умолчанию включен быстрый запуск. Это гибернация просто стильно-модно-молодёжно. Когда вы выключаете – оператива сбрасывается на диск, когда включаете – считывается снова. Не работает при перезагрузке (что логично). Поэтому ImDisk про это напомнит. Я пожертвовал этой фичей, потому что с такими характеристиками грузиться стало не шибко дольше.
Да и к тому же я включаю ноут, пока воткнёшь все моники, пока чаю нальёшь – уже все запускается :)
Дальше решил проверить какой получился профит от создания RAM диска.
В целом – хорошо. В 5-6 раз.
Приступил к допиливанию IDEA.
Для этого я перенёс кэши и индексы на RAM диск. Сделал новую папку на RAM диске, назвал idea
. В ней создал ещё три папки: idea
, caches
, index
.
Через символьные ссылке (да-да, Windows их поддерживает). Для этого делаем: Win+R -> cmd -> Ctrl+Shift+Enter
и в новом окошке администратора переходим:
cd %HOMEPATH%\.IntelliJIdea2019.3\system
mklink /D index R:\idea\index
mklink /D caches R:\idea\caches
Отлично. Таким образом у нас кэши и индексы будут лежать на RAM диске. Один большой недостаток в этом всём это то, что теперь нет локальной истории, а индексирование проекта будет происходить при первом открытии проекта. Я осознанно пошёл на это, локальная история обычно годится в течение одного сеанса работы, а подождать индексации на таких мощностях – дело полминуты.
Преимущества этого всего достаточно субъективны. Единожды открытый проект переоткрывается просто мгновенно. Даже проект в 44 gradle модуля.
Я пошёл дальше и решил что IDEA, поскольку имеет встроенную JVM для запуска, тоже надо переместить на RAM диск. И вообще автоматизировать этот процесс. Что для этого потребовалось. По пути %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
создаём файл с раширением .bat
и со следующим содержимым
mkdir r:\idea
mkdir r:\idea\caches
mkdir r:\idea\index
mkdir r:\idea\idea
xcopy /S "c:\Program Files\JetBrains\IntelliJ IDEA 2019.2.3" r:\idea\idea\
Таким образом, при старте у нас создаются необходимые папки, а IDEA копируется на RAM диск и кладёт свои кэши и индексы туда же.
После переноса в RAM диск идея тоже стала грузиться ощутимо быстрее.
Плюс я поправил немножко опций для запуска. Это делается через IDEA -> Help -> Edit custom VM options
. Там я поменял следующее:
-Xms1024m
-Xmx6144m
-XX:ReservedCodeCacheSize=500m
В целом, ускорением я доволен :)
Хорошие результаты. Но я пока со своим компом не готов экспериментировать