Ускорение и оптимизация работы NetBeans 7.1

В последнее время я довольно часто пишу на Java. В основном это прикладные программы с использованием библиотеки Swing. В этом мне помогает среда разработки NetBeans с плагином графического построения окон, диалогов и других компонентов пользовательского интерфейса. Кроме того, NetBeans поддерживает разработку на PHP, JavaScript и HTML, что для меня не менее важно. Но, увы, NetBeans бывает очень задумчивым и частенько притормаживает. Например, при открытии большого проекта, редактировании большого исходного файла или компиляции сложной программы.  Я решил это исправить. Что из этого вышло — под спойлером.

Кстати, кто еще не выбрал IDE для PHP, NetBeans может стать прекрасным бесплатным вариантом. Я пользуюсь, пока доволен.

Примечание: все манипуляции с NetBeans тестировались только на версии 7.1 под Windows 7 Ultimate (JRE 7) с процессором AMD Athlon 215 и ОЗУ DDR2 4 гигабайта. Если у вас получился другой результат (например, IDE стала еще больше тормозить) возможно настройки не подходят вашей системе.

Сначала нужно выяснить, почему NetBeans тормозит? В процессе загрузки, я заметил, что самое медленное место — загрузка подключаемых модулей. Заходим в меню «Сервис» — «Подключаемые модули». Открывается окно с доступными, установленными и прочими модулями. Выбираем вкладку «Установлено». Теперь тщательно просматриваем, какие модули вам нужны, и какие нет. Отмечаем ненужные модули, жмем «Деактивировать» и перезапускаем среду. Удалять не стоит, весят они мало и не займут много места на жестком диске. У меня получился вот такой список:

Не знаю как насчет общей работы, но зато запуск ускорился прилично. Да и теперь не нужные модули перестанут занимать место в ОЗУ.

Следующим шагом стала «уборка» в системе. Довольно таки большая фрагментация диска, куда установлен NetBeans и небольшой беспорядок в проектах тоже сказываются на производительность. Я удалил лишние файлы и штатными средствами Windows (очистка диска и дефрагментация) привел в порядок ОС. После этого винчестер стал шуметь намного меньше при работе с NetBeans.

Но этого мало. Прирост производительности во время написания кода я не ощутил. Пришлось начать копаться в настройках JRE для NetBeans. И я нашел интересную вещь — достаточное количество определенных параметров, которые могут помочь ускорить NetBeans.

Примечание: для активации параметров(флагов) запуска, их нужно просто добавить в ярлык приложения, например вот так «C:Program Files (x86)NetBeans 7.1binnetbeans.exe» -J-Xms128m, где -J-Xms128m является флагом. Кроме того, эти опции можно включить в конфиг файле netbeans.conf. 

  • Первым я решил рассмотреть вот этот -J-Xverify:none параметр. Он указывает JRE не выполнять проверку байт-кода. Это приводит к более быстрой загрузке классов, а так же убирает необходимость загружать классы только лишь для того, что бы их проверить.
  • Теперь рассмотрим следующий флаг -J-Xms32m. Он устанавливает значение начального размера кучи в 32 мегабайта. Если у вас мало ОЗУ, и вам не критично время запуска то не используйте его. Документация по NetBeans утверждает, что по умолчанию Xms включен, и его стоит использовать только в случае установки большего, или меньшего начального размера кучи. Например, такой -J-Xms64m.
  • Флаг -J-Xmx256m устанавливает максимальный размер памяти, который может выделить NetBeans, в данном случае это 256 мегабайт. Что бы установить, например 512 мегабайт, добавьте флаг -J-Xmx512m. Разработчики просят учесть, что если установить размер больше, чем доступно физической памяти возникнут жуткие тормоза и непредвиденные ситуации. Кстати, чрезмерное увеличение этого параметра, даже при достаточном наличии ОЗУ не приведет к желаемому результату. Например, я на своей машине не вижу разницы между -J-Xmx512m и -J-Xmx1024m. Поэтому советую вам поэкспериментировать с этим флагом.
  • Если во время работы у вас бывает «заморозка» всего интерфейса и программа перестает отвечать на запросы, но через несколько секунд все восстанавливается, то попробуйте добавить флаг -J-XX:+UseConcMarkSweepGC. По словам разработчиков, его следует использовать, если сборка мусора вызывает остановку или зависание всего приложение. Возможно, это поможет избежать вот таких вот «фризов».
  • Очень полезный флаг -J-XX:CompileThreshold=100, устанавливает количество обращений к методу, после которого он будет скомпилирован в машинный код. Я выставил у себя
    -J-XX:CompileThreshold=50, это может вызвать более долгую загрузку среды, но поскольку я не открываю IDE на 5 минут, а бывает работаю там весь день, то компиляция методов в машинный код значительно ускорит работу как интерфейса так и самой программы.

Вот собственно и все. Вопросы пишите в комментариях. Удачной настройки ;).

Комментарии 13

  • Использовал по первости NetBeans 7.1 для php-разработки на своем маке (не могу свой мак упрекнуть в низкой производительности), но так и не смог победить его тормнознутость, хотя отключил все оптимизации, проверки орфографий, сканирование проекта, фиг знает, чего ему не хватает. Я конечно целиком одобряю кроссплатформенную концепцию джавы, и под виндой недбинс меня полностью устраивал, но на маке что-то не задалось. Стал искать новые решения для php-кодинга, пока остановился на Coda — очень приятный, нативный, работает моменатльно, один недастаток — платный. Стоит 50 баксов. Сейчас юзаю триальную версию, пока доволен. Наверное, раскошелюсь.

  • Да, NetBeans меня победил — перехожу потихоньку на IDEA для Java. Для PHP еще не выбрал другую.

  • NetBeans 7.3 стал еще медленный, но не могу перейти на другую среду, так как он очень удобен. 🙁

    • Заставьте себя перейти на phpStorm. Хотя он платный и тоже написан на Java, вы почувствуете разницу.

  • Я правильно понял что если писать на php то эти флаги не влияют на производительность?

    • Вы не правильно поняли. Данные флаги служат для оптимизации самого NetBeans, так как он использует Java технологии.

  • Спасибо автору, подкрутил NetBeans 7.3 вроде полегчало, а то уж больно особенно при правке html тормозил

  • sublime3 более менее, но не хватает плюшек от netbeans

    • Просто Sublime3 это мощный редактор, а не IDE. Хотя многие, поставив кучу плагинов, делают из Sublime подобие какой либо IDE. Не хочу сказать что Sublime это плохо, я его сам использую. Но каждый инструмент имеет свое предназначение. Средние и крупные проекты я все равно делаю в PhpStorm или IDEA.

  • Статья помогла. Netbeans 8 стоит под XP на виртуальной машине. После вышеуказанных манипуляций IDE «ожила», хоть «железо» и …авно (в смысле куплено давно).

  • Задолбали пиарщики Идеи. Подымите свою ветку и пиарте ее там , если кому будет интересно .

  • Вообще-то все эти настройки не для одной Netbeans, а для всех Java-программ, т.е. действуют, например, и на Eclipse.
    И ещё, Sublime это просто навороченый редактор, phpStorm/IDEA это IDE (к тому же заточенные под конкретный язык и прочее), а Netbeans это не просто IDE, а целый конструктор, из которого можно собрать IDE с поддержкой кучи языков или какой-нибудь другой инструмент.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *