powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Java JIT - всё? Берёмся за ум
11 сообщений из 111, страница 5 из 5
Java JIT - всё? Берёмся за ум
    #39466936
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglОк, но это приличная разница между п- и машкодом
-распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и
-загрузить 4кб по нужному смещению из dllВы опять недодумали: когда работает JIT - всё уже загружено и слинковано.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466952
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
java -Xshare:dump&dir server\classes.jsa&java -version
Allocated shared space: 37879808 bytes at 0x0000000800000000
Loading classes to share ...
Preload Warning: Cannot find sun/security/provider/DSA$LegacyDSA
Loading classes to share: done.
Rewriting and linking classes ...
Rewriting and linking classes: done
Number of classes 2481
    instance classes   =  2467
    obj array classes  =     6
    type array classes =     8
Calculating fingerprints ... done.
Removing unshareable information ... done.
Shared Lookup Cache Table Buckets = 8216 bytes
Shared Lookup Cache Table Body = 64736 bytes
ro space:   6521552 [ 35.2% of total] out of  16777216 bytes [38.9% used] at 0x0000000800000000
rw space:  10408208 [ 56.2% of total] out of  16777216 bytes [62.0% used] at 0x0000000801000000
md space:   1548120 [  8.4% of total] out of   4194304 bytes [36.9% used] at 0x0000000802000000
mc space:     34053 [  0.2% of total] out of    131072 bytes [26.0% used] at 0x0000000802400000
total   :  18511933 [100.0% of total] out of  37879808 bytes [48.9% used]

06.06.2017  20:47        18 677 760 classes.jsa

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Да, J(ava)S(hared)A(rchive) не компиляция в нативный код. Но! Прежде чем фантазировать о гигабайтах и мегаиопсах - не худо бы ознакомиться с вопросом, чтобы понимать адекватность не только используемых инструментов, но и выбранных метрик.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39467074
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglОк, но это приличная разница между п- и машкодом
-распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и
-загрузить 4кб по нужному смещению из dll
И это еще не все. Если верить Шипилёву... и его конференциям (а я ему вобщем-то верю т.к. оппозиционных мнений
просто не существовало в момент доклада и после) то существует целый слой т.н. intrinsic методов
которые уже собраны нативно (в частности методы класса String:: и пространства java.nio.*) и используют SSE инструкции
для оптимизации некоторых низкоуровневых операций типа копирования из строк в строки.
И это еще в семерке и в восьмерке. Поэтому в части runtime я думаю что "все уже украдено
до нас" и умные люди давно уже ломали голову как разогнать системные классы и я думаю
что там уже все разогнано.

Вот прикладной код. Это дааа... это вопрос.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39467216
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На знал про intrinsic методы, слушок был, но точно не знал.

Список intrinsic методов захардкоденных в Open JDK:

http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/classfile/vmSymbols.hpp#l581
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39467346
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovSiemarglОк, но это приличная разница между п- и машкодом
-распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и
-загрузить 4кб по нужному смещению из dllВы опять недодумали: когда работает JIT - всё уже загружено и слинковано.
Линковка это в т.ч процесс проставления физических адресов вызываемых функций в вызываемой. Потому пока JIT не сгенерирует машкод, проставлять еще просто нечего.

JSA - посмотрю что за зверь, и включен ли по умолчанию. Ознакомлюсь с вопросом =)
PS. Надеюсь что dz это не Завалишин /=

maytonИ это еще не все. Если верить Шипилёву... и его конференциям (а я ему вобщем-то верю т.к. оппозиционных мнений
просто не существовало в момент доклада и после) то существует целый слой т.н. intrinsic методов
которые уже собраны нативно (в частности методы класса String:: и пространства java.nio.*) и используют SSE инструкции
для оптимизации некоторых низкоуровневых операций типа копирования из строк в строки.
И это еще в семерке и в восьмерке. Поэтому в части runtime я думаю что "все уже украдено
до нас" и умные люди давно уже ломали голову как разогнать системные классы и я думаю
что там уже все разогнано.

Вот прикладной код. Это дааа... это вопрос.
Это великолепно контрастирует с утверждениями, что JIT тем и хорош, что может оптимизироваться на лету под процессор исполнения Бггг.
Но
-со скоростью кода в яве и так все неплохо
-линкеру неважно какой код подставлять - интринсик или свеже-сгенерированный
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39467907
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЭто великолепно контрастирует с утверждениями, что JIT тем и хорош, что может оптимизироваться на лету под процессор исполненияПросто в конкретном x86-мире всё очень однозначно - сопроцессор вшит на кристалл ещё со времён Pentium, SSE - со второй половины нулевых.
Но вот если вам потребовалось "переехать" с x86-64 на ARM или на экзотику типа Power, то разница будет, даже если лично вы не сможете эту разницу оценить.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39468243
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
java -Xshare:dump&dir server\classes.jsa&java -version
Allocated shared space: 37879808 bytes at 0x0000000800000000
Loading classes to share ...
Preload Warning: Cannot find sun/security/provider/DSA$LegacyDSA
Loading classes to share: done.
Rewriting and linking classes ...
Rewriting and linking classes: done
Number of classes 2481
    instance classes   =  2467
    obj array classes  =     6
    type array classes =     8
Calculating fingerprints ... done.
Removing unshareable information ... done.
Shared Lookup Cache Table Buckets = 8216 bytes
Shared Lookup Cache Table Body = 64736 bytes
ro space:   6521552 [ 35.2% of total] out of  16777216 bytes [38.9% used] at 0x0000000800000000
rw space:  10408208 [ 56.2% of total] out of  16777216 bytes [62.0% used] at 0x0000000801000000
md space:   1548120 [  8.4% of total] out of   4194304 bytes [36.9% used] at 0x0000000802000000
mc space:     34053 [  0.2% of total] out of    131072 bytes [26.0% used] at 0x0000000802400000
total   :  18511933 [100.0% of total] out of  37879808 bytes [48.9% used]

06.06.2017  20:47        18 677 760 classes.jsa

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Да, J(ava)S(hared)A(rchive) не компиляция в нативный код. Но! Прежде чем фантазировать о гигабайтах и мегаиопсах - не худо бы ознакомиться с вопросом, чтобы понимать адекватность не только используемых инструментов, но и выбранных метрик.
В доке написано, что это предварительная компиляция rt.jar во внутренний формат VM.
Только не верится, что 52Мб rt.jar превращается в 12Мб classes.jsa.
Кстати, сжатия rt.jar не применяет.

Написано, что по умолчанию JSA уже используется. Попытка форсить (-Xshare:on) или запрещать к видимым изменениям скорости загрузки не привела.

Кроме того, форс работает на винде через раз - вылетая с такой диагностикой, как тут

Ну ок. Если гипотезу откидываем, что rt.jar раздувается в сотни Мб, то надо Жруна искать дальше (GC пока остается под подозрением). Ждем релиз Java9 и будем смотреть, что изменилось.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39468354
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При интнинзик где-то на 40-й минуте

YouTube Video
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39468922
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglКстати, сжатия rt.jar не применяетНу так примените. Можете ещё "переехать" (un)pack200, чтобы убрать отладочную информацию.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39469037
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovSiemarglКстати, сжатия rt.jar не применяетНу так примените. Можете ещё "переехать" (un)pack200, чтобы убрать отладочную информацию.
Наоборот хорошо, значит там 52Мб байткода а не 100
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39477310
Еще один до сих пор не знает, что такое AOT, которое в .NET было с самого начала, в виде утилитки ngen. .NET Native утилитарная параша, которая нужна тока для мобильной мелкософтовской хрени, т.е. <5% рынка. Так что JIT+AOT/ngen никуда не уходил и живее всех живых. А ты просто слышал звон, да не знаешь где он.
...
Рейтинг: 0 / 0
11 сообщений из 111, страница 5 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Java JIT - всё? Берёмся за ум
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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