The Art Of Programming — Выпуск №50 [ VM ] / Особенности работы JVM

    Интервью с Иваном Крыловым инженером-консультантом отдела Java Licensee Engineering компании Sun Microsystems



    + Виртуальная машина JVM
    + Just-in-time компилятор (JIT)
    + Garbage collector
    прослушан 1855 раз
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 25

      +2
      Спасибо Вам и собеседнику, интересный подкаст о внутренностях JVM.
        +1
        Круто. Спасибо.
        Может сделаете серию вебкастов или подкастов по всем аспектам Java и JVM? А то очень заинтриговали 6 сборщиков мусора и внутренняя реализация.
        Очень заинтересовали эти темы!
          0
          Поддерживаю!
          Буду очень рад послушать, интересуюсь этой темой.
            0
            Последние 3 года на Техдейз есть доклыда про сборщики мусора, два года назад был доклад Игоря Вересова, год назад Катерины Павловой про Garbage First, в этом году тоже были доклады про Garbage First. Слайды точно должны быть доступны, а вот видеозаписи — не уверен.
            0
            Можно, кстати, спросить у разработчика планируют ли они вводить unsigned типы ) Думаю, тема наболевшая у многих работающих с байтиками людей
              0
              Это не вопрос виртуальной машины, а спецификации языка. Unsigned опустили умышленно, зачем — это длинная тема. С другой стороны, виртуальная машина исполняет байткоды, а не исходный код. Байткод может быть получен и из другого языка, не только java, например scala, JRuby, etc… Недавно добавилась новая инструкция invokedynamic, которая помогает работать с языками без статической типизации.
            • UFO just landed and posted this here
              • UFO just landed and posted this here
                  0
                  Ты знал ты знал +)
                0
                очень круто, ждем еще!
                  +3
                  А про единственного русского Java Licensee — Excelsior, ничего не сказал в начале =(
                    0
                    Вскользь упомянулась тема, которая не дает мне покоя уже многие годы. Когда загружается java приложение выполняется загрузка и валидация байткода, линковка методов, профайлинг кода и компиляция кода. Все это делается очень и очень долго, и именно поэтому джава до сих пор носит ярлык тормозной платформы. Было бы разумным хранить метаданные линковки, профайлинга и скомпилированный код между запусками jvm. И якобы из соображений безопасности этого не делают (хотя я навскидку могу предложить 10 secure способов хранения данных между запусками).

                    Кроме того, подобную вещь можно сделать для runtime library — заранее прекомпилировать частоиспользуемые методы и загружать в память уже native-код. Все современные ОС используют профайлинг апликаций для ускорения запуска, а Win7 даже предзагружает в бекграунде частоиспользуемые апликации. Если бы приложение запускалось 0.5 секунд вместо 10-15, то Java быстро нашла бы своих поклонников на десктопах.
                    • UFO just landed and posted this here
                        +1
                        добавлю к словам TheShade следующее:

                        1. для сокращения издержек на верификацию (там требуется итеративный потоковый анализ) в классфайлы стали включать т.н. StackMaps.

                        2. На Sun/Oracle HotSpot JVM свет клином не сошелся. Уже упомянутый мной выше Excelsior (Российская контора расположенная в Новосибирском Академгородке) разработала с нуля собственную JVM, во главу которой положена AOT-компиляция, т.е. приложение компилируется в бинарный код один раз и в таком виде распространяется. Так вот такая «превентивная» компиляция вместе с некоторыми трюками (переупорядочение секций в бинарнике на основе предварительно собранного профиля) позволяет достичь существенного (заметного на глаз ускорения) старта приложения.
                          0
                          Странно, а сайт называется excelsior-usa.com. Очень давно смотрел один из первых компиляторов эксельсиора, и он как ни странно, уступал в произвоительости Sun JRE. Как технология он хорош, можно использовать для клепания десктопных апликаций, но есть существенный недостаток: имеет свой платформно зависимый формат распространения. То есть все стандартные джавовские штуки типа Webstart отпадают. Интересней бы было иметь именно JVM со встроенным компилятором, которая бы компилировала апликацию в бекграунде на клиентской машине и в таком виде использовала бы. То есть распространяются универсальные jar-ы, а вся оптимизация идет у клиента.
                            0
                            >> Странно, а сайт называется excelsior-usa.com.

                            Есть excelsior.ru =) Видимо excelsior.com был кем-то раньше куплен, чем появилась компания…

                            >> Очень давно смотрел один из первых компиляторов эксельсиора, и он как ни странно, уступал в произвоительости Sun JRE.

                            Ну с тех пор много воды утекло, я думаю. Я правда не в курсе последних сравнений.

                            Но вот публичные замеры двухгодичной давности: www.stefankrause.net/wp/?p=9
                            0
                            Можно кстати еще использовать GCJ порт для Windows через MinGW. Хоть полностью Java RT он не поддерживает, но все-равно полезен, если нужен именно native-код.
                          0
                          Жаль не спросили темп развития java после покупки Oracle.
                          Как им у нового хозяина работается и т.д.
                          Всё равно один из лучших выпусков если брать из последних, спасибо.
                            0
                            Жизнь продолжается. Инженеры, в том числе и из Петербургского офиса, продолжают заниматься любимым делом :)
                            0
                            а как называется ваша фоновая музыка?
                              0
                              У меня тут несколько вопросов есть именно по этому подкасту, ответите? :)

                              Чем занимается Питерский офис Sun? На самом деле, в питерском офисе пишутся какие то Core технологии? В том числе даже и JVM? Насколько сложно попасть в группы, занимающиеся такими вещами?
                                0
                                Точно знаю, что в Петербургском офисе ведётся разработка JavaFX, адаптирование JVM & libraries под различные платформы, в том числе видеоприставки, поддержка и тестирование Sun/Oracle технологий.
                                  0
                                  Пишутся конечно
                                  Они много чем занимаются +) например, virtualbox.
                                  Раньше сидели команды разработчиков jme, нетбинса и Sun Studio (если я не ошибаюсь).

                                  Напишите резюме +)

                                    0
                                    Спасибо! Учту, мб и напишу)
                                      0
                                      Надеюсь, в ближайшем будущем сделаете подкаст о Java EE 6. Очень жду…

                                  Only users with full accounts can post comments. Log in, please.