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
            об этом надо было в статьк написать и подчеркнуть особою А то я уж было подумал что все что надо это «другую» яву поставить.
              +2
              fixed
              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. Грубо говоря, вы задаёт объм ОЗУ и процессорное время, которые «не жалко» — а он делает всё возможное в эти рамках :) Чем больше выделите, тем быстрее будет. Плюс, он работает на фоне и приложение практически не тормозится :) Даже сли его просто так включить — эффект получается очень заметный :)
                                0
                                Все верно =)

                            +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»

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

                                            Самое читаемое