powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Jigsaw (java9) "Enable ahead-of-time"
24 сообщений из 24, страница 1 из 1
Jigsaw (java9) "Enable ahead-of-time"
    #38711416
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Читаю сейчас, что нового будет в java9 http://openjdk.java.net/projects/jigsaw/goals-reqs/03#performance - вот здесь очень интересная штука, кто-нибудь в курсе, что именно будет в плане перформанса? Что такое "Enable ahead-of-time"? Будет что-то типа закешированной JIT оптимизации или что?
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38711458
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fororвот здесь очень интересная штука, кто-нибудь в курсе, что именно будет в плане перформанса? Что такое "Enable ahead-of-time"?Если JIT - "своевременная компиляция", то AOT - "преждевременная" , т.е. "до исполнения".
Существенно, скорее всего, будет для больших "обычных приложений", т.к. позволит им быстрее стартовать.

P.S. На самом деле - достаточно узкая оптимизация. И уж точно - не девелоперская.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38711476
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то писалось, что некоторые эффективные виды оптимизации можно сделать только на основании профиля выполнения программы. АОТ по определению лишено такой штуки. Если только оно не допускает intime перекомпиляцию.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38711495
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chabapok, ага, вот и мне интересно, это будет некий снапшот JIT оптимизации, который будет запускаться в дальнейшем или что-то еще? просто пока нет времени, подробнее покопать в этом напрвлении, а так было бы интересно, приятно за java, будет просто огонь )
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38713448
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как скучно станет жить))
Нельзя будет ламерам пообъяснять что джава не тормозит, просто они по своей тупости не знают, какие офигенные оптимизации делает джастинтайм компилятор, которые и не снились нативным языкам))
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38713460
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkКак скучно станет жить))
Нельзя будет ламерам пообъяснять что джава не тормозит, просто они по своей тупости не знают, какие офигенные оптимизации делает джастинтайм компилятор, которые и не снились нативным языкам))
По-моему это робкая попытка сделать что-то со временем запуска, которое в Java традиционно никакое.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38713614
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПо-моему это робкая попытка сделать что-то со временем запуска, которое в Java традиционно никакое.
По-моему тоже. И по ссылке написана в том числе и эта причина.

Смотрел видео про AOT java компилятор от Excelsior JET, там чувак говорил что в swing'е (и swt вроде тоже) нет горячего кода => чтобы он скомпилировался jit'ом он должен очень-очень долго греться..


Basil A. SidorovИ уж точно - не девелоперская.
Ещё по ссылке написаноa tool which a developer can use to collect compiled code from a variety of sources, including modules and the application class path, and then analyze and optimize the code as a whole and produce a custom binary run-time image containing the result.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38713635
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkСмотрел видео про AOT java компилятор от Excelsior JET, там чувак говорил что в swing'е (и swt вроде тоже) нет горячего кода => чтобы он скомпилировался jit'ом он должен очень-очень долго греться..

GUI приложения, обычно, работают в клиентской JVM, у которой более высокий порог для того чтобы включился JIT. За счет этого JVM стартует быстрее, но, в целом, работает медленнее.


avp.mkЕщё по ссылке написаноa tool which a developer can use to collect compiled code from a variety of sources, including modules and the application class path, and then analyze and optimize the code as a whole and produce a custom binary run-time image containing the result.
Ну, это же часть Jigsaw, где по задумке из JVM можно выбрать только модули нужные именно твоему приложению. Если я правильно понимаю это фичу. Конечно бы хотелось побольше почитать. Для Java 9 всё ещё только ведутся эксперементы по всем этим фичам. Будут ли они успешными?
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38713985
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай запилят yield return в девятке.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714475
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczavp.mkв swing'е (и swt вроде тоже) нет горячего кода => чтобы он скомпилировался jit'ом он должен очень-очень долго греться..
GUI приложения, обычно, работают в клиентской JVM, у которой более высокий порог для того чтобы включился JIT. За счет этого JVM стартует быстрее, но, в целом, работает медленнее.
Вот в силу этих причин AOT компиляция - полезная штука для UI приложений.

BlazkowiczБудут ли они успешными?
JRockit, .Net, а теперь и Android пошли этим путём.. (AOT)
Мне нравится идея AOT компиляции у клиента (если она будет опциональной). При установке некоторых приложений (NetBeans, IDEA) я готов не мало подождать чтобы они потом работали шустро.

Если бы была возможность (опциональная!) запустить 1e9 тестов для сборки профиля, лично я не пожалел бы на неё времени и места на диске (оставил бы компьютер на пару часов (да хоть на день если бы это дало результат)). Чтобы JVM могла быстро порождать офигительный код под моё железо.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714550
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avp.mkЕщё по ссылке написаноa tool which a developer can use to То, что лежит за забором - редко соответствует надписи на нём.

P.S. У девелопера, как минимум, нет целевого железа клиента, как максимум - списка/статистики используемого софта.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714591
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНельзя будет ламерам пообъяснять что джава не тормозит, просто они по своей тупости не знают, какие офигенные оптимизации делает джастинтайм компилятор, которые и не снились нативным языкам))
Машина не заоптимизирует лучше, чем человек. А то, что везде говорят как круто JVM все оптимизирует, дак этож оракл и говорит - ему прибыль нужна. Как и про SPARC собственно, себестоимость которых в разы больше аналогов, а производительность на уровне Xeon E5 далеко не самых топовых. Правда, есть плюс в том, что если кода много, то вручную оптимизировать накладно и здесь у авто-оптимизатора есть преимущество, однако, у программы, как правило, есть основной "call-trace" и если стоит проблема производительности - можно и вручную. Все ИМХО, конечно.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714659
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892Машина не заоптимизирует лучше, чем человек.

Утверждение верно, но с оговоркой.
Машина оптимизирует хуже меньшинства программистов.
Большинство программистов будут оптимизировать хуже, чем машина. :-)
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714904
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
Не согласен.

Человек знает алгоритм, в этом его огромный плюс перед оптимизатором. Не один оптимизатор не сможет оптимизировать так же качестве, как человек, знающий алгоритм и что данный код должен получить в результате.

Но что бы AOT компиляция была плюсом, нужно синтаксис расширять. Что бы можно было хинтами управлять поведением оптимизатора. Например, предсказателем перехода. И как должна выглядить банальная конструкция switch лично мне становится не понятно. JIT компилятор хоть по статистики выполнения, имеет _шанс_ понять, какая ветка должна быть default'на для предсказателя перехода, а AOT будет порождать х.з. что.

IMHO
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714912
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevmad_nazgul
Не согласен.

Человек знает алгоритм, в этом его огромный плюс перед оптимизатором. Не один оптимизатор не сможет оптимизировать так же качестве, как человек, знающий алгоритм и что данный код должен получить в результате.


В системе "человек-машина" обычно слабое звено человек.
Я не спорю, что человек МОЖЕТ оптимизировать лучше чем машина.
Я утверждаю, что НЕ ВСЕ люди могут оптимизировать лучше чем машина. ;-)

Leonid KudryavtsevНо что бы AOT компиляция была плюсом, нужно синтаксис расширять. Что бы можно было хинтами управлять поведением оптимизатора. Например, предсказателем перехода. И как должна выглядить банальная конструкция switch лично мне становится не понятно. JIT компилятор хоть по статистики выполнения, имеет _шанс_ понять, какая ветка должна быть default'на для предсказателя перехода, а AOT будет порождать х.з. что.
IMHO

Программируйте на ассемблере. ;-)
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714919
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПрограммируйте на ассемблере. ;-)
Ну на MMX писать приходилось. Иначе просо банально проц не тянул, что бы реализовать все хотелки дизайнера )))

(Делал кусок для мультимедийной экспозиции музея Ханты-Мансийска www.kamis.ru)
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38714995
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892Машина не заоптимизирует лучше, чем человекПроблема оптимального кода в том, что он нечитабельный.
А выдавать на-гора (кило)метры нечитабельного, но работающего текста не получится у подавляющего большинства программистов.
Поэтому: "кесарю - кесарево" - человек пишет оптимальный алгоритм, машина генерит оптимальный код.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715020
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЧеловек знает алгоритм, в этом его огромный плюс перед оптимизатором. Не один оптимизатор не сможет оптимизировать так же качестве, как человек, знающий алгоритм и что данный код должен получить в результате.Вы не учитываете то, что для эффективной реализации надо знать не только алгоритм, но и досконально разбираться в кишках конкретной операционки и конкретного железа на котором она стоит. JVM разделяет эти две зоны ответственности - железо на компиляторе, алгоритм - на разработчике.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715022
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AOT может очень круто помогать, например в mark open сценарии, про который Gil Tene рассказывает здесь: http://www.infoq.com/presentations/jvm-dynamic-optimizations
Например, собрали статистику на одном маркет опене, заоптимизировались, а потом дампнули эту оптимизацию в файл. Потом перед следующим маркет опеном загрузили эти оптимизации.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал. Есть вопросы.

Что такое проект Jigsaw? Какое он имеет отношение к официальной Oracle JDK ?

Что такое AOT по отношению к JIT ? Являются ли они антагонизмами? Или АОТ просто дополняет Джит.

Не является-ли компилляция бинарника нарушением общей идеи или концепци (WORA) Java Machine?

Какие существуют ограничения на AOT ? Что нельзя на нём сделать?
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715108
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧто такое проект Jigsaw? Какое он имеет отношение к официальной Oracle JDK?

Jigsaw это некая альтернатива текущей модульности внутри Java, которая на pure Java реализуется только через jar-ы со всеми вытекающими. Во-первых это возможность создавать модули и управлять их зависимостями. Во-вторых это возможность применить модульность к JDK/JRE, что открывает интересные перспективы: возможность выкинуть лишнее, возможность использовать модули разных версий, и пр.

maytonЧто такое AOT по отношению к JIT ? Являются ли они антагонизмами? Или АОТ просто дополняет Джит.
В википедии хорошо разжевано.
http://en.wikipedia.org/wiki/Ahead-of-time_compilation
JIT компилирует твой байт-код снова и снова с каждым запуском JVM. Реализация AOT в Java даст возможность уменьшить время запуска твоих приложенний, исключив фазы интрепретации и JIT-компиляции. Либо они сведутся к минимуму.

maytonНе является-ли компилляция бинарника нарушением общей идеи или концепци (WORA) Java Machine?

Это палка о двух концах, как и обратная совместимость. Концепция WORA для разработчика не изменится. Концепция для доставки приложения клиенту может изменится. Например, если мы включаем в дистрибутив JRE, нам же все равно приходится предлагать разные сборки приложения по разные ОС.

maytonКакие существуют ограничения на AOT ? Что нельзя на нём сделать?
В википедии хорошо написано и об этом тоже.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715238
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO народ бредом занимается. Такими темпами, они Java угробят нафиг
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто ничего не угробит. Речь идёт об альтернативных Java forks,
которые вовсе не факт что войдут в официальный релиз.
...
Рейтинг: 0 / 0
Jigsaw (java9) "Enable ahead-of-time"
    #38715587
avp.mk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про хинты тоже подумал как новость прочитал.

Хорошо бы их выстовлять для jit'а (и aot'а). Некоторые можно было бы выставлять аннотациями, например: @CompileToNativeAgressivly(recompileTimes_max = 25) @CompilationNotNeeded @Dereflection @Deboxing @SynchronyzationNotNeeded @CompilationTestMethod @StoreObjectsInStack @ExplodeObjects @TailRecursion.


И управлять нативной компиляцией в рантайме тоже, наверное, было бы полезно.
Например, пока пользователь авторизуется (делает длительную не ресурсоёмкую для машины операцию), в другом потоке можно запустить что-то вроде:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
val profilingProcess = startProfilingLogFor(BuisnessLogic.class, KindInfo.FLOAT_POINT_CALC, KindInfo.MEMORY_USAGE);
profileBuisnessLogic_withMockXyz();
val profilingLog = pl.stopProfiling();
JitCompiler
    .compile(BuisnessLogic.class, BuisnessEntityA.class, BuisnessEntityB.class)
    .withProfile(profilingLog)
    .withPerfomanceTests(BuisnessLogic_PfTestA.class, etc)
    .optimizeFor(FLOAT_POINT_CALC, SOME_GC_TWEAK)
    .maxCompilationTime(5, MINUTES)
    .start();




maytonНе является-ли компилляция бинарника нарушением общей идеи или концепци (WORA) Java Machine?
Даже если AOT компиляция не будет запускаться на клиенте write once - не compile once ;)
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Jigsaw (java9) "Enable ahead-of-time"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]