Intellij idea уменьшить потребление памяти

Обновлено: 05.07.2024

Краткая шпаргалка по сочетаниям клавиш в IntelliJ IDEA

Как ранее уже сообщалось, я начал активно изучать возможности IntelliJ IDEA. В частности, я стараюсь запомнить наиболее востребованные хоткеи, чтобы выполнять большую часть работы, не отрывая руки от клавиатуры, как это происходит при программировании в Vim. По моим наблюдениям, это реально экономит кучу времени. Я сделал для себя шпаргалку по хоткеям IDEA, которую вы найдете под катом. Полагаю, она также пригодится кому-то из посетителей данного блога.

Примечание: Те же сочетания клавиш работают и в других продуктах JetBrains, например, PyCharm и CLion.

Ниже не приводятся общеизвестные и очевидные сочетания вроде Ctr+C, Ctr+V или Ctr + S. В IntelliJ IDEA многие хоткеи имеют парный хоткей отличающийся только тем, что в нем дополнительно участвует клавиша Shift. Обычно она добавляет в том или ином виде выделение текста. Например, Ctr + End переводит курсор в конец файла, а Ctr + Shift + End выделяет код от текущей позиции до конца файла. Догадаться о существовании парных хоткеев несложно, поэтому далее они не приводятся. Наконец, если в любом диалоге IntelliJ IDEA вы видите подчернутые буквы, знайте, что сочетание Alt + буква равносильно использованию соответствующего контрола (обычно кнопок). Например, быстро запушить код в репозиторий можно путем нажатия Ctr + K, Alt + I, Alt + P, а затем снова Alt + P.

Итак, основные сочетания следующие.

Редактирование:

Ctr + Z Undo, отменить последнее действие
Ctr + Shift + Z Redo, отменить последнюю отмену действия
Ctr + Shift + V Расширенная вставка из буфера обмена (с историей)
Ctr (+ Shift) + W Инкрементальное выделение выражения
Ctr + влево/вправо Перемещение между словами
Ctr + вверх/вниз Прокрутка кода без изменения позиции курсора
Ctr + Home/End Переход в начало/конец файла
Shift + Del (Ctr + Y) Удаление строки, отличие в том, где потом окажется курсор
Ctr + Del Удалить от текущей позиции до конца слова
Ctr + Backspace Удалить от текущей позиции до начала слова
Ctr + D Дублировать текущую строку
Tab / Shift + Tab Увеличить / уменьшить текущий отступ
Ctr + Alt + I Выравнивание отступов в коде
Ctr + Alt + L Приведение кода в соответствие code style
Ctr + / Закомментировать/раскомментировать текущую строку
Ctr + Shift + / Закомментировать/раскомментировать выделенный код
Ctr + -/+ Фолдинг, свернуть/развернуть
Ctr + Shift + -/+ Фолдинг, свернуть/развернуть все
Ctr + Shift + . Сделать текущий скоуп сворачиваемым и свернуть его
Ctr + . Сделать текущий скоуп несворачиваемым
Ctr + R Замена в тексте
Ctr + Shift + R Замена во всех файлах

Окна, вкладки:

Alt + влево/вправо Перемещение между вкладками
Ctr + F4 Закрыть вкладку
Alt + циферка Открытие/закрытие окон Project, Structure, Changes и тд
Ctr + Tab Switcher, переключение между вкладками и окнами
Shift + Esc Закрыть активное окно
F12 Открыть последнее закрытое окно
Ctr + колесико Zoom, если он был вами настроен

Закладки:

Подсказки и документация:

Ctr + Q Документация к тому, на чем сейчас курсор
Ctr + Shift + I Показать реализацию метода или класса
Alt + Q Отобразить имя класса или метода, в котором мы находимся
Ctr + P Подсказка по аргументам метода
Ctr + F1 Показать описание ошибки или варнинга
Alt + Enter Показать, что нам предлагают «лампочки»

Поиск:

Генерация кода и рефакторинг:

Прочее:

Понятное дело, в этой шпаргалке названы далеко не все возможности IntelliJ IDEA. Всем заинтересованным лицам я настоятельно рекомендую вот прямо брать и читать ее замечательную документацию, там очень много интересного. Жаль только, что документация не доступна в виде одного большого PDF файла.

Дополнение: В последних версиях IDEA можно использовать несколько курсоров, разместив их либо при помощи комбинации Alt+Shift+ЛКМ, либо вертикальным выделением при помощи клика средней клавишей мыши. Держа на вооружении сочетание Ctr + влево/вправо, осуществляющего переход между словами, а также другие, можно очень удобно редактировать сразу несколько строк кода.

Вчера у нас была дискуссия о настройке параметров памяти в IntelliJ IDEA, и выяснилось, что некоторые люди этого не делают, некоторые (как я) используют простой набор изменений, а некоторые разработчики создают необычные, сложные настройки, которые удовлетворяют их потребностям. Во время работы над текущим проектом мне приходилось иметь дело с несколькими небольшими проектами в области микросервисов и одним старым проектом, который является довольно крупным бизнесом клиента. И после внесения некоторых изменений я заметил действительно значительное улучшение, когда дело доходит до скорости IDE и отзывчивости. Но в то время я не измерял, что именно изменилось, это было только субъективное наблюдение, что «ИДЕЯ теперь быстрее» .

Но во время этой дискуссии один из разработчиков, работающих на одного и того же клиента (спасибо Юрий) прислал мне свои настройки, и я был действительно поражен их уровнем сложности. Я был доволен своей собственной настройкой, но мне также было любопытно, как эти совершенно разные настройки сравниваются друг с другом и как они сравниваются со значениями по умолчанию, предоставленными JetBrains. Поэтому после обсуждения с Юрием я понял, что это хороший материал для поста в блоге.

Мой план состоит в том, чтобы сравнить, как различные настройки памяти IDEA работают в сценарии, близком к моему ежедневному использованию (загрузка большого проекта, загрузка двух или трех микросервисов, обновление большого проекта после гипотетического git pull ), а затем выбрать наиболее оптимальные настройки, когда дело доходит до памяти улучшение потребления и скорости.

Тестовая машина и проекты

Ноутбук : MacBook Pro Retina, 2,3 ГГц Intel Core i7, 16 ГБ 1600 МГц DDR3, SSD-диск, OS X Yosemite

проектов

Тестовый сценарий

  1. Закрыть все проекты в Idea
  2. Проверьте настройки в файле idea.vmoptions
  3. Сбросить мой ноутбук
  4. После запуска закройте все не связанные программы (коммуникаторы и т. Д.)
  5. Открытая идея (измерение времени)
  6. Открытый Большой Проект (время измерения)
  7. Проверьте jstat -gcutil
  8. Откройте еще два проекта: Микросервис Один и Микросервис Два (время измерения)
  9. Проверьте jstat -gcutil
  10. Вернитесь в Большой проект и нажмите кнопку «Обновить проект Gradle» (измерение времени)
  11. Проверьте jstat -gcutil

Что такое jstat -gcutil

В этом релизе мы сосредоточились на производительности и качестве. Вместе с другими командами JetBrains, мы занимались оптимизацией производительности, повышением отзывчивости интерфейса, улучшением существующей функциональности.

Чтобы правильно расставить приоритеты, мы полагались на ваши отзывы и благодарим всех, кто делился идеями и сообщал об ошибках в нашем трекере. В результате мы исправили более 1600 проблем, которые в общей сложности получили около 4000 голосов пользователей.

Мы также работали над поддержкой новых фреймворков для создания микросервисов, таких как Micronaut, Quarkus и Helidon, и сделали долгожданную поддержку MongoDB.

blog@2x (3)

Оптимизация производительности

Мы много работали над улучшением производительности IntelliJ IDEA. Вот что у нас получилось:

  • IntelliJ IDEA запускается гораздо быстрее.
  • Меньше зависаний редактора и интерфейса.
  • IDE потребляет меньше памяти, особенно при импорте Gradle-проектов.


Одной из главных задач в этом году было сократить время запуска IDE. Мы внесли существенные архитектурные изменения в платформу IntelliJ: некоторые процессы, которые при запуске происходили последовательно, теперь выполняются параллельно. Кроме того, мы реорганизовали классы, чтобы ускорить инициализацию, оптимизировали загрузку шрифтов на macOS и многое другое.

Мы уделили внимание повышению отзывчивости интерфейса и избавились от многих зависаний в различных частях IntelliJ IDEA. Нам удалось устранить причины зависаний из более чем 1600 баг-репортов. Кроме того, сообщать о зависаниях теперь легче.

Теперь IntelliJ IDEA работает гораздо быстрее, когда в редакторе или отладчике открыто много вкладок, а также когда регулярное выражение соответствует очень длинным строкам в Find in Path. Открытие дерева проекта тоже занимает меньше времени.

Мы ускорили работу редактора, оптимизировав вывод типов в Java. Вывод типов для длинных цепочек вызовов методов теперь работает намного быстрее. Подсветка синтаксиса Java тоже работает быстрее, особенно это касается методов с generic varargs (Arrays.asList, Map.ofEntries и т.д.), которые могут содержать десятки аргументов. Объединение нескольких строк с помощью действия Join Lines тоже ускорилось.

Поддержка Kotlin 1.3.60 тоже привела к улучшениям, например, ускорилась подсветка синтаксиса Kotlin в редакторе.

Другие исправления коснулись VCS: удалось сократить время обработки событий и игнорируемых файлов, устранить зависания и ускорить обновление статуса в больших проектах.

В подсистеме сборки мы снизили пиковое потребление памяти при импорте больших Gradle-проектов. А еще исправили проблемы с редактированием файлов pom.xml в Maven-проектах: теперь IDE предлагает варианты автодополнения без задержек.

Мы довольны результатами, но не останавливаемся на этом. В следующих версиях будем и дальше оптимизировать производительность и постараемся сделать запуск IDE еще быстрее.

Улучшение качества

У IntelliJ IDEA богатая экосистема плагинов, но есть недостаток: при установке или удалении плагина нужно перезапускать IDE. Мы начали решать эту проблему и реализовали базовую инфраструктуру для динамической установки плагинов, без перезапуска IDE. Пока что это работает только для тем интерфейса и сочетаний клавиш.


Системы контроля версий

Много нового в поддержке VCS. Чтобы упростить работу с ветками, вместо действия Checkout as. мы добавили два новых: Checkout и New Branch from Selected. Действие New Branch from Selected создает новую локальную ветку, но не включает отслеживание какой-либо удаленной ветки. При вызове действия Checkout IDE создает новую локальную ветку, извлекает ее из репозитория и включает отслеживание выбранной удаленной ветки, если нет локальной ветки с таким же именем.


Мы переработали диалог Clone и сделали единый интерфейс для скачивания проектов с различных VCS-хостингов. Теперь вы можете войти в свой аккаунт прямо из обновленного диалога. Если вы уже залогинились, IDE покажет списки всех репозиториев, сгруппированных по учетным записям или организациям, в которых вы состоите.


Другие улучшения

В предыдущей версии мы поддержали функциональность Java 13, а в этот раз значительно улучшили поддержку текстовых блоков Java 13. Недавно мы рассказывали об этом в нашем блоге.

Теперь есть простой способ просмотреть иерархию вызовов для выбранного поля: используйте новое действие Field Call Hierarchy (Ctrl/Cmd+Alt+H).

Если у вас установлен флажок Show quick documentation on mouse move, при наведении указателя мыши на предупреждение или ошибку отобразится единая подсказка с описанием предупреждения или ошибки и справочной информацией о коде.
Раньше в таких случаях IDE показывала только подсказку об ошибке без документации, а иногда появлялось целых два всплывающих окна.

Мы обновили поведение диалога intention actions: действия не исчезнут из списка предложений, если вы выбрали одно из них и закрыли диалог.

Окно Services теперь всегда отображается, и его поведение можно можно настроить внутри самого окна. Кроме того, вы можете скрыть определенные конфигурации запуска.


— Подсказки о несоответствии типа стали более подробными и понятными.
— При открытии проекта IntelliJ IDEA показывает его название.
— Мы поддержали вставки фрагментов кода на новых языках шаблонов, в частности Pug (ранее — Jade), Handlebars, EJS и Slim.
— Появилась плавная прокрутка колесом мыши.
— Полосы прокрутки можно сделать более заметными, используя чекбокс Use contrast scrollbars в меню Preferences/Settings | Appearance & Behavior | Appearance.

Поддержка новых фреймворков и технологий

Несмотря на то, что при подготовке этой версии мы в основном были сосредоточены на качестве, мы также работали над несколькими новыми функциями и рады их представить. Всё, что описано ниже, есть только в IntelliJ IDEA Ultimate.

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

Во-первых, мы расширили помощь при написании кода и возможности навигации для фреймворков разработки микросервисов нового поколения: Micronaut, Quarkus и Helidon. Для тех, кто занимается реактивным программированием, мы добавили поддержку Spring Web Flux.

Наконец, мы расширили поддержку спецификаций API. В этой версии мы поддержали Swagger 2 и OpenAPI Specification 3. Поддержка включает в себя проверку на соответствие схеме, автодополнение, навигацию, поиск использований и рефакторинг Rename в YAML/JSON-файлах, содержащих описания API.

На данный момент все это работает только для проектов на Java и Kotlin, но в следующих версиях мы планируем поддержать другие языки и фреймворки.

Кроме того, IntelliJ IDEA 2019.3 наконец поддерживает MongoDB. В этой версии коллекции и поля отображаются в проводнике баз данных, вы можете выполнять запросы и просматривать их результаты.

Важные исправления

— IDE теперь находит каталог, в который Gradle был установлен через Homebrew.
— Стало проще вручную устанавливать домашний каталог Gradle.
— IntelliJ IDEA теперь поддерживает хранение паролей в KWallet на Linux.
— Для проектов JavaFX IDE может отображать файл FXML со встроенным Scene Builder на вкладке Scene Builder.
— В окне Debug работает навигация с клавиатуры.
— Можно скопировать выбранный текст из окна инспекции через Ctrl/Cmd+C.
— Фокус не теряется при переключении между окнами IDE.
— Улучшено расположение окон и всплывающих подсказок.
— Если в IDE выбрана тема Darcula, системные окна MacOS при вызове открываются в темной теме.

Мы также обновили JetBrains Runtime 11 (JBR 11).


— Исправили рендеринг шрифтов на macOS Catalina.
— Устранили проблему с открытием проекта на macOS 10.15 Catalina.
— Исправили символы в диалоге Evaluate Expression.
— IntelliJ IDEA обнаружит конфликты между сочетаниями клавиш IDE и шорткатами операционной системы.
— В редакторе устранили ​​проблему со шрифтами, которые всегда были выделены курсивом.
— Исправили начальный экран на Windows.

Все подробности о новой версии читайте на сайте или посмотрите обзор (на английском).

2Gb в качестве частных байтов и 3,5 Гб в качестве виртуального размера. Когда я закрыл несколько больших проектов sbt, но использование памяти осталось прежним. Это жучок? Могу ли я вручную запустить что-то вроде "refresh", чтобы освободить использование памяти из закрытых проектов?

2 ответа

Кто-нибудь знает, как уменьшить объем памяти числа в JavasScript, если я заранее знаю, что мое число находится между 0 и 100 ? Пример и объяснение моей проблемы : Мое приложение JavaScript работает с очень большими объектами : тысячи детей для каждого. Мои объекты выглядят как коллекции sims : [

Какова наилучшая процедура для начала нового проекта Gradle в IntelliJ IDEA 12.1.3? Я создал файл skeleton build.gradle с плагином idea для генерации файлов проекта: apply plugin: 'java' apply plugin: 'idea' task wrapper(type: Wrapper) < gradleVersion = '1.6' >Когда я открываю новый проект.

Вы можете попробовать нажать на индикатор использования памяти в правом нижнем углу главного окна.

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

Я вроде как новичок в intellij idea. Шаблон проекта node.js с intellij IDEA — это экспресс-проект node.js, который хорош (вы подключаете веб-сервер для запуска своего проекта и т. д.), Но в нем есть.

как уменьшить объем памяти, занимаемой bitmap в android. уменьшит ли options.insamplesize из bitmap объем памяти, потребляемый bitmap

Кто-нибудь знает, как уменьшить объем памяти числа в JavasScript, если я заранее знаю, что мое число находится между 0 и 100 ? Пример и объяснение моей проблемы : Мое приложение JavaScript работает.

Какова наилучшая процедура для начала нового проекта Gradle в IntelliJ IDEA 12.1.3? Я создал файл skeleton build.gradle с плагином idea для генерации файлов проекта: apply plugin: 'java' apply.

Я решил переключить систему сборки для проекта Android на Gradle 1.4. Я использую Intellij Idea IDE. После импорта существующего проекта tictactoe на основе файла biuld.gradle я могу построить его.

У меня есть несколько проектов, где каталог, содержащий проект, называется Code. Когда я открываю IDEA, в моем списке последних проектов я вижу только это имя. Есть ли какой-нибудь способ изменить.

Я использую плагин Statistic для IntelliJ IDEA . Для одного моего проекта, который имеет около 15.000 Java строк исходного кода, Statistic застревает на 92% прогрессе, а затем IntelliJ отображает.

Настройки памяти Intellij IDEA можно настроить , отредактировав опцию -Xmx в idea64.vmoptions . Допустим, я установил -Xmx2g а затем откройте 5 различных проектов одновременно. Может ли IDEA в.

Я переустановил java на свой ноутбук с другой версией, и после этого мой проект не может хорошо работать в Intellij Idea. Итак, я хочу знать, как изменить версию проекта java в Intellij Idea?

Читайте также: