NetBeans в Java Real-Time

    nb
    NetBeans — очень удобная для разработчика среда, обычно отпугивающая своей тормознутостью, т.к. громоздка и написана на Яве. Что ж, будем надеятся, что однажды все наладится, а пока посмотрим, как эту ситуацию может исправить Real-Time Java.


    Java Real-Time System распространяется(http://java.sun.com/javase/technologies/realtime/index.jsp) по жесткой лицензии с возможностью использовать ограниченное время: версия 2.1 — всего лишь год после установки. На сайте так же доступна и версия 2.2 с ограничением на 90 дней.

    JavaRTS для полноценной работы требует Real-Time систему, и доступна для скачивания лишь для ОС Solaris и Linux (real-time патчи к ядру).

    В чем же отличие real-time явы от обычной?
    — Real-Time нити, планирование и синхронизация
    В RTSJ появляется концепция 2-х нитей: real-time и no-heap real-time (которые не могут быть прерваны сборщиком мусора). А так же 28 уровней приоритетов для них.
    — Новые схемы управления памятью
    — Наносекундная точность времени и таймеров
    — Прямой доступ к физической памяти (при сохранении безопасности=))

    Однако, для приложений написанных без использования Java Real-Time API, одна из особенностей специфичных именно Яве заключается в работе сборщика мусора. Он выполняется в то время, когда никому не мешает и постоянно прерывается на перепланировку процессов.

    Итак, поехали…
    Объект испытания: NetBeans 6.5.1

    nb

    JavaRTS 2.1
    bash-3.2$ javarts -version
    Java Real-Time System HotSpot(TM) Client VM warning: unable to lock pages into memory
    java version "1.5.0_16"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16_Java-RTS-2.1_fcs-b11_RTSJ-1.0.2)
    Java Real-Time System HotSpot(TM) Client VM (build 1.5.0_16-b11, mixed mode)


    ArchLinux
    bash-3.2$ uname -a
    Linux hyperion 2.6.29-rt #1 SMP PREEMPT RT Wed Jun 3 17:02:08 MSD 2009 i686 Intel(R) Core(TM) Duo CPU T2450 @ 2.00GHz GenuineIntel GNU/Linux


    Все готово, запускаем нашу «непростую» IDE
    bash-3.2$ ./netbeans --jdkhome /usr/share/JavaRTS/jrts2.1/

    Загрузился NetBeans неожиданно быстро, хотя предсказуемо не спешил при инициализации модулей.

    Обычно медленно и с гулом винчестера открывающиеся, боковые панельки вылетели, лишь на мгновение тормознув мышь. Наконец-то не успеваешь зевнуть, пока появляются тяжелые менюшки, а табы открываются практически мгновенно.

    Что ж, пока прирост скорости не может не радовать. Попробуем что-нибудь покруче. Я всегда не любил возиться с обновлениями и плагинам лишь из-за долго открытия окна для упраления ими: Tools -> Plugins… И обычно долгая инициализация списка плагинов проходит за примерно указанное в прогресс-баре время — около 5-7 секунд.
    Следующая тяжелая вещь: Tools->Options… Все подвисает, меню появляется довольно скоро, но управление мышью возвращается лишь после нескольких секунд.

    Использование памяти все это время скачет в пределах от 90 до 130 Мб (по монитору плагина «Java Profiler»), хотя с jdk1.6.0_12 предел обычно около 70 Мб, но здесь, вероятно, большое влияние оказывает использование различных версий Явы (JavaRTS 2.1 собрана на основе jdk1.5.0_16).
    Метки:
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 42
    • +4
      6.7 кстати заметно шустрее стала.
      • +1
        вот фигня, только пошел поставить, а версии для win32 нет :(
        • +2
          Потому что Windows — не real-time система, а здесь все запускалось с патченным ядром:
          >2.6.29-rt #1 SMP PREEMPT RT
          • 0
            об этом надо было в статьк написать и подчеркнуть особою А то я уж было подумал что все что надо это «другую» яву поставить.
          • 0
            Любопытно. А на Ubuntu можно запустить RT Java? Нужно патчить ядро или это в принципе невозможно?
            • 0
              https://wiki.ubuntu.com/RealTime
              Но что-то ребята там долго суетятся, хотя и их можно понять

              Хотя, если использовать в Ubuntu ядро, собранное из исходников, то здесь можно найти актуальные патчи
              ftp://ftp.kernel.org/pub/linux/kernel/projects/rt/
              • 0
                Нужно установить пакет с уже собранным RT ядром, в гугле по «ubuntu RT» много ссылок. Даже на хабр :)
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Можно узнать у тех, кто уже использует:
                www.opennet.ru/opennews/art.shtml?num=15302

                Но на официальном Sun ничего об этом нет =(

                Зато есть бесплатный аналог, который я пока не успел испытать:
                javolution.org/
                • 0
                  Это не бесплатный аналог, а просто хорошо написанная библиотека нацеленная на уменьшение сборки мусора. Т.е. объекты переиспользуются, реализуются стандартные интерфейсы с этими либами и все такое прочее. Приятная штука, но только для оптимизации тонких мест.
                  • 0
                    Прошу прощения — недоглядел:
                    «исключены средства сборки мусора, дефрагментации памяти, добавлен собственный класс функций для манипуляции со строками»

                    Увлекся чтением доклада с Space2007 об этой библиотеке
                    javolution.org/doc/AIAA-2007-6184.pdf
              • +1
                Можно узнать

                • 0
                  Попробуйте нажимать наа ссылку «ответить» под комментарием, на который вы хотите ответить.
                • +2
                  >с гулом винчестера
                  прочитал с гуглом винчестера :)
                  • –5
                    Поздравляю.
                  • +2
                    Если целью ставилось ускорение Netbeans, то если объем ОЗУ позволяет можно запускать используя RAM Disk. В линукс системах это делается несколькими коммандами.
                    • 0
                      Сам нетбинс в RAM скопировать или как?
                      • 0
                        При запуске скрипта Нетбинс с настройками копируется в рам диск
                        , после работы снова копируется на жесткий диск. Описание нашел здесь coffeecokeandcode.blogspot.com/2008/08/netbeans-on-speed.html, но сам не пробовал ибо сижу на Windows и рамдиск в ней надо создавать отдельной программой еще и платной.
                        Автор пишет что ускорение интерфейса заметно в сравнении с 10.000rpm VelociRaptor и дает рекомендации по созданию рамдиска.
                        • 0
                          А нет ли какойто волшебной штуки чтобы всю ОС с программами пихала в рам(я про линух) демон preload есть, но результата заметного нет.
                    • 0
                      А почему бы не включить сборщик G1 от последней Java 1.6-14? Я так понимаю, что эффект будет аналогичный и работает под всеми ОС.
                      • 0
                        Ещё можно включить server java — ростёт объём используемого ОЗУ, но также сильно ростёт скорость.
                        Короче, странный вы какой-то способ ускорения нашли… но интересный :)
                        • 0
                          >Ещё можно включить server java
                          Спасибо — обязательно попробую

                          >Короче, странный вы какой-то способ ускорения нашли… но интересный :)
                          Потому и написал об этом =)
                          Хотелось посмотреть JavaRTS в деле, а что может быть лучше тяжелой программы, которой пользуюсь чуть ли не каждый день — чувствуется любое изменение производительности. Жаль только, подходящих тестов не нашел, чтобы еще и на цифрах сравнить.
                        • 0
                          >Я так понимаю, что эффект будет аналогичный и работает под всеми ОС.
                          Аналогичный, но только для работы сборщика мусора =)
                          • 0
                            Дык ведь «Однако, для приложений написанных без использования Java Real-Time API, одна из особенностей специфичных именно Яве заключается в работе сборщика мусора. Он выполняется в то время, когда никому не мешает и постоянно прерывается на перепланировку процессов...» — это именно то, что делает G1. Грубо говоря, вы задаёт объм ОЗУ и процессорное время, которые «не жалко» — а он делает всё возможное в эти рамках :) Чем больше выделите, тем быстрее будет. Плюс, он работает на фоне и приложение практически не тормозится :) Даже сли его просто так включить — эффект получается очень заметный :)
                      • +3
                        а кстати, с чем вы сравниваете нетбианс? если с идеей, то согласен, если с эклипсом, то эклипс тормознутее на порядок.
                        • 0
                          Пользуюсь и NetBeans, и Eclipse (последним гораздо реже). Когда меня спрашивают о том, какую IDE предпочтаю, то тут же удивляются, переводя разговор на производительность Явы.
                          • 0
                            Хмм, у меня совершенно обратные впечатления, netbeans намного тормозней…
                            • 0
                              а версию нетбинса, версию жабы, плагины и ось можно узнать? Плюс размеры проекта; нужно учитывать что по умолчанию нетбианс автоматически парсит весь проект, а эклипс только открытые файлы.
                              Насчет эклипса: может мне не везло, но не тормозящий эклипс я еще не видел.
                              • +1
                                Согласен с alexevil, по моим впечатлениям NetBeans тормознутее. Поставил NetBeans 6.5, когда он вышел. Поставил, понравилось, но потом нужно было ещё и js редактировать, часто переключался между скриптами… это был кошмар. Да, машина у меня не самой последней свежести, но тоже ещё бегает ого-го, но… Потом поставил Aptana Studio (считай Eclipse), и что говорится, почувствуйте разницу! Плюс jQuery support!
                                • 0
                                  в netbeans'е кстати тоже jquery поддержка есть.
                                  • 0
                                    и снова на мой вопрос не ответили :)
                                    Eclipse и Netbeans работают как под виндой так и под никсами, плюс куча версий и вариантов.
                                    аптана, как мне показалось -одна из самых быстрых сборок эклипса для html-php.

                                    Если накатывать аптану же на стандартный эклипс, то скорость ощутимо падает, не в пример нетбиансу.

                                    Плюс я так понял, что вы веб разработчик, какую нетбиансу вы накатывали? чисто php или all? плюс сколько файлов у вас было в проекте?

                                    Мои параметры:
                                    1) AMD Athlon 3gb win xp sp3: netbeans dev vs eclipse 3.4.2
                                    2) core 1200 1gb fedora 11 netbeans 6.7 vs zde6
                                    3) старая машинка на работе 512mb fedora 10 netbeans 6.5 vs eclipce+PDT
                                    везде нетбианс выигрывает по скорости, в особенности ctr+_
                                    • 0
                                      Параметры:
                                      Intel Core Duo 1,6 2 Гб Windows Vista Businnes SP1
                                      Пробовал NetBeans 6.5 (только PHP версия), Aptana Studio 1.2 с PHP plugin, Eclipse PDT

                                      В проекте где — то около 30 скриптовых фалов. Визуально везде были быстрее Aptana и Eclipse. NetBeans постоянно замирал, окно висло… жуть, продуктивность была не очень.
                                      P.S.: Java вроде 5.0 или 5 с чем — то, не помню, пишу не из офиса.
                                      До этого, где — то года полтора назад тоже пытался на бинс перейти, но уже по Java профилю, отпугнула тормознутость и тогда.
                                      • +1
                                        да, вот в таком раскладе я бинс не тестил, у меня жаба 1.6, попробуйте вместо 5 поставить, может завертится? плюс пробуйте 6.7 :)
                            • НЛО прилетело и опубликовало эту надпись здесь
                              • 0
                                Было бы любоптно увидеть тест другого ява тормоза — RubyMine.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  • 0
                                    Прошу прощения за то, что ввел, возможно, всех и Вас в том числе в заблуждение тем, что не упомянул в топике, что статья писалась для души и это был скорее обзор, чем эксперимент.
                                    Поэтому я не привел никакой статистики производительности, никаких циферок — одни впечатления =)
                                    Но узнав из комментариев о паре новых для себя способов оптимизации направленных на ускорение работы, я твердо решил померять все в«цифрах» и в Java 5 (для соблюдения более равных условий). Посему, спасибо за ценные поправки — обязательно учту =)
                                    • 0
                                      Я всегда не любил возиться с обновлениями и плагинам лишь из-за долго открытия окна для упраления ими: Tools -> Plugins… И обычно долгая инициализация списка плагинов проходит за примерно указанное в прогресс-баре время — около 5-7.
                                      В каких единицах измеряется время «5-7»? Минутах, секундах?
                                      • 0
                                        Секундах, конечно же в секундах =)
                                      • +2
                                        Запуск Netbeans с включенным G1 выдает Exception, разработчики пишут «Do not use the IDE with the G1 Garbage Collector»

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