В последнее время я довольно часто пишу на 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 минут, а бывает работаю там весь день, то компиляция методов в машинный код значительно ускорит работу как интерфейса так и самой программы.
Вот собственно и все. Вопросы пишите в комментариях. Удачной настройки ;).
Использовал по первости NetBeans 7.1 для php-разработки на своем маке (не могу свой мак упрекнуть в низкой производительности), но так и не смог победить его тормнознутость, хотя отключил все оптимизации, проверки орфографий, сканирование проекта, фиг знает, чего ему не хватает. Я конечно целиком одобряю кроссплатформенную концепцию джавы, и под виндой недбинс меня полностью устраивал, но на маке что-то не задалось. Стал искать новые решения для php-кодинга, пока остановился на Coda — очень приятный, нативный, работает моменатльно, один недастаток — платный. Стоит 50 баксов. Сейчас юзаю триальную версию, пока доволен. Наверное, раскошелюсь.
Да, NetBeans меня победил — перехожу потихоньку на IDEA для Java. Для PHP еще не выбрал другую.
NetBeans 7.3 стал еще медленный, но не могу перейти на другую среду, так как он очень удобен. 🙁
Заставьте себя перейти на phpStorm. Хотя он платный и тоже написан на Java, вы почувствуете разницу.
Я правильно понял что если писать на php то эти флаги не влияют на производительность?
Вы не правильно поняли. Данные флаги служат для оптимизации самого NetBeans, так как он использует Java технологии.
Спасибо автору, подкрутил NetBeans 7.3 вроде полегчало, а то уж больно особенно при правке html тормозил
Пожалуйста. Советуй перейти на phpStorm.
sublime3 более менее, но не хватает плюшек от netbeans
Просто Sublime3 это мощный редактор, а не IDE. Хотя многие, поставив кучу плагинов, делают из Sublime подобие какой либо IDE. Не хочу сказать что Sublime это плохо, я его сам использую. Но каждый инструмент имеет свое предназначение. Средние и крупные проекты я все равно делаю в PhpStorm или IDEA.
Статья помогла. Netbeans 8 стоит под XP на виртуальной машине. После вышеуказанных манипуляций IDE «ожила», хоть «железо» и …авно (в смысле куплено давно).
Отлично!
Кстати, зацените мой блог на английском. Ссылка в шапке сайта.
Задолбали пиарщики Идеи. Подымите свою ветку и пиарте ее там , если кому будет интересно .
Ахаха, ну окей.
Учту ваше мнение что писать в моем блоге.
Кстати, зацените мой блог на английском. Ссылка в шапке сайта.
Вообще-то все эти настройки не для одной Netbeans, а для всех Java-программ, т.е. действуют, например, и на Eclipse.
И ещё, Sublime это просто навороченый редактор, phpStorm/IDEA это IDE (к тому же заточенные под конкретный язык и прочее), а Netbeans это не просто IDE, а целый конструктор, из которого можно собрать IDE с поддержкой кучи языков или какой-нибудь другой инструмент.
Все так, не будут спорить. Хотя может в 2014-2015 я понимал это чуток иначе.
Кстати, зацените мой блог на английском. Ссылка в шапке сайта.