Pull to refresh
4
0
Иван Крылов @sunless

Пользователь

Send message
где можно скачать?
Триал можно скачать на сайте Азула. Триал ограничен временем, не функциональностью.

Не умеет, не поддерживает arm.

Если хотите попробовать JWarmup на своем железе, то попробуйте ReadyNow в Zing JVM.

Из всех цифр нас интересуют аллокации — именно поэтому включил Из всех цифр нас интересуют аллокации — именно поэтому включил GCProfiler

Тут бы рассказать, кто такой GCProfiler и как он работает

У Azul уже есть некое готовое AOT решение под названием ReadyNow ..

Вообще, докладчик, то есть Douglas Hawkins, он не хрен с горы, а известный нашему java-сообществу человек, читал доклад на питерском JUGе 2 года назад. Короче, можно было и представить его.

Так а вы пользуетесь ReadyNow? Как он себя показал?

JIT заменит холодную часть метода на uncommon trap. В случае, если мы таки попали в редкую часть метода — управление свалится в интерпретатор, а в бэкграунде запиститься замещающая компиляция. Для хотспота я бы не стал разбивать код на хелпер методы, чтобы "помочь JITу".

В прошлом году я ездил с докладом "Чего ждать от Java 9".
Пришло время готовить доклад "Чего не ждать от Java 9" — value types, java on gpus, и т.п.

Наверное, проведём аналогичное мероприятие в Петербурге после нового года.

Graal в Java 9? Это только если еще года на три отложат выпуск девятки.

Отлично представляю. Как раз про это есть в материале выше.

оптимизатор, который, например, желает заинлайнить некоторый метод, но не может — вдруг его потом перепишут?

Он, конечно, может, но если что — деопт случится. В в худшем случае — деопт шторм. И да, это беда.

В-третьих, ни слова об экспортировании ресурсов: ClassLoader.getResource()

Лучшее, что я нешел по теме — это саммари Марка


В частности:


  • All existing resource-lookup methods in Class and ClassLoader work as
    they do today for resources on the class path.


  • The new java.lang.reflect.Module::getResourceAsStream method can be
    used to read the resources of any named module, without restriction.

Ну и в-четвертых, приватные классы модулей могут вылезать наружу как содержимое других объектов

Я, наверное, сейчас полную глупость скажу, но как это отличается от ситуации, когда мы из некого метода возвращаем объект фактического типа приватного подкласса, отнаследованного от публичного класса? Мы можем работать с этим объектом, мы вот только с приватным классом работать не можем.
Я вижу, что вы это пример на хабре приводили еще год назад, наверное что-то не понимаю.

Bootstrap классы грузит ВМка всегда, их число меняется от версии к версии. Это т.н. well known классы. Что почитать? Кроме исходников, трудно что-то посоветовать, в статьях и книжках такие детали реализации не приводят. -XX:+TraceClassLoading помогает.

Классы в JVM загружаются лениво, так что footprint не поменяется.

Я вижу 2 основные фичи


  • механизм отслеживания зависимостей между модулями, то есть ClassNotFoundException случится не в момент обращения к этому классу, а при старте приложения (и в другом виде). Аналогично компиляция модулей даже не начнется, если требуемых модулей нет.
  • возможность поставки приложения с сабсетом JRE, а также работа приложения на уже установленном сабсете JRE.
    Тема с автоматической подгрузкой стандартных недостающих модулей с вправду нераскрыта, видимо, этим будут заниматься сторонние менеджеры.
а разработчик не хочет пересобирать приложение с новой версией

"Перед смертью" надо разработчику оставить завещание зарелизить приложение как stand-alone модуль. Не смотрел, можно ли jmod бандл "разобрать" на составляющие модули и выдрать, собственно, уникальный код. Всё-таки, это не zip архив. Думаю, поставка приложений в виде jimage будет малораспространённым яалением.

Поправьте:

Доступ к off-head и работа с данными

Доступ к off-heap и работа с данными
Если вы запустите хотспот под gdb, то он почти сразу начнет «подать» с такими сегфолтами, сразу надо настраивать gdb, чтобы он игнорировал эти прерывания. Но не в дебаггере этого не видно.

И это не обязательно stop the world. Так реализуют, хоть и не в openjdk, механизм per thread safepoint, когда надо гарантировать, что каждый thread зайдет в сервисную рутину, но после того может продолжить работу, не дожидаясь остальных.

Information

Rating
Does not participate
Date of birth
Registered
Activity