|
|
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Читаю сейчас, что нового будет в java9 http://openjdk.java.net/projects/jigsaw/goals-reqs/03#performance - вот здесь очень интересная штука, кто-нибудь в курсе, что именно будет в плане перформанса? Что такое "Enable ahead-of-time"? Будет что-то типа закешированной JIT оптимизации или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 17:33 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Fororвот здесь очень интересная штука, кто-нибудь в курсе, что именно будет в плане перформанса? Что такое "Enable ahead-of-time"?Если JIT - "своевременная компиляция", то AOT - "преждевременная" , т.е. "до исполнения". Существенно, скорее всего, будет для больших "обычных приложений", т.к. позволит им быстрее стартовать. P.S. На самом деле - достаточно узкая оптимизация. И уж точно - не девелоперская. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 19:40 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Где-то писалось, что некоторые эффективные виды оптимизации можно сделать только на основании профиля выполнения программы. АОТ по определению лишено такой штуки. Если только оно не допускает intime перекомпиляцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 20:45 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
chabapok, ага, вот и мне интересно, это будет некий снапшот JIT оптимизации, который будет запускаться в дальнейшем или что-то еще? просто пока нет времени, подробнее покопать в этом напрвлении, а так было бы интересно, приятно за java, будет просто огонь ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2014, 22:09 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Как скучно станет жить)) Нельзя будет ламерам пообъяснять что джава не тормозит, просто они по своей тупости не знают, какие офигенные оптимизации делает джастинтайм компилятор, которые и не снились нативным языкам)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 20:44 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
avp.mkКак скучно станет жить)) Нельзя будет ламерам пообъяснять что джава не тормозит, просто они по своей тупости не знают, какие офигенные оптимизации делает джастинтайм компилятор, которые и не снились нативным языкам)) По-моему это робкая попытка сделать что-то со временем запуска, которое в Java традиционно никакое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2014, 21:00 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 08:17 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
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 всё ещё только ведутся эксперементы по всем этим фичам. Будут ли они успешными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 08:48 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Пускай запилят yield return в девятке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 12:57 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Blazkowiczavp.mkв swing'е (и swt вроде тоже) нет горячего кода => чтобы он скомпилировался jit'ом он должен очень-очень долго греться.. GUI приложения, обычно, работают в клиентской JVM, у которой более высокий порог для того чтобы включился JIT. За счет этого JVM стартует быстрее, но, в целом, работает медленнее. Вот в силу этих причин AOT компиляция - полезная штука для UI приложений. BlazkowiczБудут ли они успешными? JRockit, .Net, а теперь и Android пошли этим путём.. (AOT) Мне нравится идея AOT компиляции у клиента (если она будет опциональной). При установке некоторых приложений (NetBeans, IDEA) я готов не мало подождать чтобы они потом работали шустро. Если бы была возможность (опциональная!) запустить 1e9 тестов для сборки профиля, лично я не пожалел бы на неё времени и места на диске (оставил бы компьютер на пару часов (да хоть на день если бы это дало результат)). Чтобы JVM могла быстро порождать офигительный код под моё железо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 18:22 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
avp.mkЕщё по ссылке написаноa tool which a developer can use to То, что лежит за забором - редко соответствует надписи на нём. P.S. У девелопера, как минимум, нет целевого железа клиента, как максимум - списка/статистики используемого софта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 21:44 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
авторНельзя будет ламерам пообъяснять что джава не тормозит, просто они по своей тупости не знают, какие офигенные оптимизации делает джастинтайм компилятор, которые и не снились нативным языкам)) Машина не заоптимизирует лучше, чем человек. А то, что везде говорят как круто JVM все оптимизирует, дак этож оракл и говорит - ему прибыль нужна. Как и про SPARC собственно, себестоимость которых в разы больше аналогов, а производительность на уровне Xeon E5 далеко не самых топовых. Правда, есть плюс в том, что если кода много, то вручную оптимизировать накладно и здесь у авто-оптимизатора есть преимущество, однако, у программы, как правило, есть основной "call-trace" и если стоит проблема производительности - можно и вручную. Все ИМХО, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 23:03 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
no56892Машина не заоптимизирует лучше, чем человек. Утверждение верно, но с оговоркой. Машина оптимизирует хуже меньшинства программистов. Большинство программистов будут оптимизировать хуже, чем машина. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 07:31 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Не согласен. Человек знает алгоритм, в этом его огромный плюс перед оптимизатором. Не один оптимизатор не сможет оптимизировать так же качестве, как человек, знающий алгоритм и что данный код должен получить в результате. Но что бы AOT компиляция была плюсом, нужно синтаксис расширять. Что бы можно было хинтами управлять поведением оптимизатора. Например, предсказателем перехода. И как должна выглядить банальная конструкция switch лично мне становится не понятно. JIT компилятор хоть по статистики выполнения, имеет _шанс_ понять, какая ветка должна быть default'на для предсказателя перехода, а AOT будет порождать х.з. что. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 13:57 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevmad_nazgul Не согласен. Человек знает алгоритм, в этом его огромный плюс перед оптимизатором. Не один оптимизатор не сможет оптимизировать так же качестве, как человек, знающий алгоритм и что данный код должен получить в результате. В системе "человек-машина" обычно слабое звено человек. Я не спорю, что человек МОЖЕТ оптимизировать лучше чем машина. Я утверждаю, что НЕ ВСЕ люди могут оптимизировать лучше чем машина. ;-) Leonid KudryavtsevНо что бы AOT компиляция была плюсом, нужно синтаксис расширять. Что бы можно было хинтами управлять поведением оптимизатора. Например, предсказателем перехода. И как должна выглядить банальная конструкция switch лично мне становится не понятно. JIT компилятор хоть по статистики выполнения, имеет _шанс_ понять, какая ветка должна быть default'на для предсказателя перехода, а AOT будет порождать х.з. что. IMHO Программируйте на ассемблере. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 14:03 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
mad_nazgulПрограммируйте на ассемблере. ;-) Ну на MMX писать приходилось. Иначе просо банально проц не тянул, что бы реализовать все хотелки дизайнера ))) (Делал кусок для мультимедийной экспозиции музея Ханты-Мансийска www.kamis.ru) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 14:10 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
no56892Машина не заоптимизирует лучше, чем человекПроблема оптимального кода в том, что он нечитабельный. А выдавать на-гора (кило)метры нечитабельного, но работающего текста не получится у подавляющего большинства программистов. Поэтому: "кесарю - кесарево" - человек пишет оптимальный алгоритм, машина генерит оптимальный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 15:13 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЧеловек знает алгоритм, в этом его огромный плюс перед оптимизатором. Не один оптимизатор не сможет оптимизировать так же качестве, как человек, знающий алгоритм и что данный код должен получить в результате.Вы не учитываете то, что для эффективной реализации надо знать не только алгоритм, но и досконально разбираться в кишках конкретной операционки и конкретного железа на котором она стоит. JVM разделяет эти две зоны ответственности - железо на компиляторе, алгоритм - на разработчике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 15:28 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
AOT может очень круто помогать, например в mark open сценарии, про который Gil Tene рассказывает здесь: http://www.infoq.com/presentations/jvm-dynamic-optimizations Например, собрали статистику на одном маркет опене, заоптимизировались, а потом дампнули эту оптимизацию в файл. Потом перед следующим маркет опеном загрузили эти оптимизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 15:29 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Почитал. Есть вопросы. Что такое проект Jigsaw? Какое он имеет отношение к официальной Oracle JDK ? Что такое AOT по отношению к JIT ? Являются ли они антагонизмами? Или АОТ просто дополняет Джит. Не является-ли компилляция бинарника нарушением общей идеи или концепци (WORA) Java Machine? Какие существуют ограничения на AOT ? Что нельзя на нём сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 16:03 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
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 ? Что нельзя на нём сделать? В википедии хорошо написано и об этом тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 16:21 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
IMHO народ бредом занимается. Такими темпами, они Java угробят нафиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 17:18 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Никто ничего не угробит. Речь идёт об альтернативных Java forks, которые вовсе не факт что войдут в официальный релиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 18:36 |
|
||
|
Jigsaw (java9) "Enable ahead-of-time"
|
|||
|---|---|---|---|
|
#18+
Про хинты тоже подумал как новость прочитал. Хорошо бы их выстовлять для 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. maytonНе является-ли компилляция бинарника нарушением общей идеи или концепци (WORA) Java Machine? Даже если AOT компиляция не будет запускаться на клиенте write once - не compile once ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2014, 07:37 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38713460&tid=2126769]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 560ms |

| 0 / 0 |
