|
|
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglОк, но это приличная разница между п- и машкодом -распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и -загрузить 4кб по нужному смещению из dllВы опять недодумали: когда работает JIT - всё уже загружено и слинковано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:44 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglСо вторым - а если мегабайты П-кода (rt.jar 52Мб) превращаются в сотни машинного? "Знай, что хаешь" (ц) dz Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Да, J(ava)S(hared)A(rchive) не компиляция в нативный код. Но! Прежде чем фантазировать о гигабайтах и мегаиопсах - не худо бы ознакомиться с вопросом, чтобы понимать адекватность не только используемых инструментов, но и выбранных метрик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 15:54 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglОк, но это приличная разница между п- и машкодом -распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и -загрузить 4кб по нужному смещению из dll И это еще не все. Если верить Шипилёву... и его конференциям (а я ему вобщем-то верю т.к. оппозиционных мнений просто не существовало в момент доклада и после) то существует целый слой т.н. intrinsic методов которые уже собраны нативно (в частности методы класса String:: и пространства java.nio.*) и используют SSE инструкции для оптимизации некоторых низкоуровневых операций типа копирования из строк в строки. И это еще в семерке и в восьмерке. Поэтому в части runtime я думаю что "все уже украдено до нас" и умные люди давно уже ломали голову как разогнать системные классы и я думаю что там уже все разогнано. Вот прикладной код. Это дааа... это вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 17:09 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
На знал про intrinsic методы, слушок был, но точно не знал. Список intrinsic методов захардкоденных в Open JDK: http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/classfile/vmSymbols.hpp#l581 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 19:01 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovSiemarglОк, но это приличная разница между п- и машкодом -распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и -загрузить 4кб по нужному смещению из dllВы опять недодумали: когда работает JIT - всё уже загружено и слинковано. Линковка это в т.ч процесс проставления физических адресов вызываемых функций в вызываемой. Потому пока JIT не сгенерирует машкод, проставлять еще просто нечего. JSA - посмотрю что за зверь, и включен ли по умолчанию. Ознакомлюсь с вопросом =) PS. Надеюсь что dz это не Завалишин /= maytonИ это еще не все. Если верить Шипилёву... и его конференциям (а я ему вобщем-то верю т.к. оппозиционных мнений просто не существовало в момент доклада и после) то существует целый слой т.н. intrinsic методов которые уже собраны нативно (в частности методы класса String:: и пространства java.nio.*) и используют SSE инструкции для оптимизации некоторых низкоуровневых операций типа копирования из строк в строки. И это еще в семерке и в восьмерке. Поэтому в части runtime я думаю что "все уже украдено до нас" и умные люди давно уже ломали голову как разогнать системные классы и я думаю что там уже все разогнано. Вот прикладной код. Это дааа... это вопрос. Это великолепно контрастирует с утверждениями, что JIT тем и хорош, что может оптимизироваться на лету под процессор исполнения Бггг. Но -со скоростью кода в яве и так все неплохо -линкеру неважно какой код подставлять - интринсик или свеже-сгенерированный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2017, 21:53 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglЭто великолепно контрастирует с утверждениями, что JIT тем и хорош, что может оптимизироваться на лету под процессор исполненияПросто в конкретном x86-мире всё очень однозначно - сопроцессор вшит на кристалл ещё со времён Pentium, SSE - со второй половины нулевых. Но вот если вам потребовалось "переехать" с x86-64 на ARM или на экзотику типа Power, то разница будет, даже если лично вы не сможете эту разницу оценить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2017, 15:20 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovSiemarglСо вторым - а если мегабайты П-кода (rt.jar 52Мб) превращаются в сотни машинного? "Знай, что хаешь" (ц) dz Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Да, J(ava)S(hared)A(rchive) не компиляция в нативный код. Но! Прежде чем фантазировать о гигабайтах и мегаиопсах - не худо бы ознакомиться с вопросом, чтобы понимать адекватность не только используемых инструментов, но и выбранных метрик. В доке написано, что это предварительная компиляция rt.jar во внутренний формат VM. Только не верится, что 52Мб rt.jar превращается в 12Мб classes.jsa. Кстати, сжатия rt.jar не применяет. Написано, что по умолчанию JSA уже используется. Попытка форсить (-Xshare:on) или запрещать к видимым изменениям скорости загрузки не привела. Кроме того, форс работает на винде через раз - вылетая с такой диагностикой, как тут Ну ок. Если гипотезу откидываем, что rt.jar раздувается в сотни Мб, то надо Жруна искать дальше (GC пока остается под подозрением). Ждем релиз Java9 и будем смотреть, что изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 01:29 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglКстати, сжатия rt.jar не применяетНу так примените. Можете ещё "переехать" (un)pack200, чтобы убрать отладочную информацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 17:29 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovSiemarglКстати, сжатия rt.jar не применяетНу так примените. Можете ещё "переехать" (un)pack200, чтобы убрать отладочную информацию. Наоборот хорошо, значит там 52Мб байткода а не 100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 19:52 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Еще один до сих пор не знает, что такое AOT, которое в .NET было с самого начала, в виде утилитки ngen. .NET Native утилитарная параша, которая нужна тока для мобильной мелкософтовской хрени, т.е. <5% рынка. Так что JIT+AOT/ngen никуда не уходил и живее всех живых. А ты просто слышал звон, да не знаешь где он. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2017, 19:36 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39469037&tid=1340359]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
195ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 477ms |

| 0 / 0 |
