powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Java JIT - всё? Берёмся за ум
25 сообщений из 111, страница 4 из 5
Java JIT - всё? Берёмся за ум
    #39465178
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonBasil A. Sidorov,

Удивительно что вот всё так хорошо, и при этом почти всё более-менее распространенное написано на нативных языках.
Фотошоп, Офисы (и MS и бесплатные), Skype, Telegram, Viber (кроме Андроида, то есть - под Андроид написали, но это не привело к мульти-платформенности, пришлось писать на разных языках), все распространенные браузеры. Серверные Nginx, Апач сервер, Mongo DB, Ms Sql, MySQL.
native на мобильной платформе я могу объяснить. Очень сильно экономили энергию.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465286
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonBasil A. Sidorov,

Удивительно что вот всё так хорошо, и при этом почти всё более-менее распространенное написано на нативных языках...
Far только под винду. Miranda тоже.
Там где деньги - перепишут под что угодно, если на этом еще денег можно заработать.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465293
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonBasil A. Sidorov,

Удивительно что вот всё так хорошо, и при этом почти всё более-менее распространенное написано на нативных языках.
Фотошоп, Офисы (и MS и бесплатные), Skype, Telegram, Viber (кроме Андроида, то есть - под Андроид написали, но это не привело к мульти-платформенности, пришлось писать на разных языках), все распространенные браузеры. Серверные Nginx, Апач сервер, Mongo DB, Ms Sql, MySQL.
А все более-менее приносящее деньги, совершенно на других языках )))

Oracle E-Business Suite, SAP R3, etc... etc...

Я так понимаю, по сравнению с баблом который течет с enterprise консалтингового рынка, даже MS Windows - детский лепет )))
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465331
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglТ.е 180Мб этого мало?Вы правда считаете, что Seamonkey на скриншоте в двух местах - просто так?
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465334
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovSiemarglТ.е 180Мб этого мало?Вы правда считаете, что Seamonkey на скриншоте в двух местах - просто так?Я думаю что надо пояснять свою мысль.

У меня она была проста - компилятор в памяти => несколько сотен Мб.

А в чем суть сравнения с Сеаманки я не понимаю - современный браузер гораздо сложнее текстового редактора jEdit и содержит внутри себя кучу интерпретаторов CSS/HTMLK/JS и мало ли что еще.
Тогда уж с Netsurf сравнивать.

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

У меня она была проста - компилятор в памяти => несколько сотен Мб.

Хотелось бы видеть откуда взялась цифра "несколько сотен"

По ощущениям, там даже несколько десятками не пахнет. Накладные расходы по памяти для Java 1.6 были порядка 32 Mb под скомпилированный код (можно уменьшить или увеличить). Сколько занимает собственно код самого компилятора, не знаю. Но сомневаюсь, что это больше десятка - двух десятков мегабайт. Т.е. на мой взгляд, накладные расходы и до 100 Mb не дотягивают.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465436
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
By the way,

Там очень большие накладные расходы совершенно в другом. В потоках. Если на компьютере 256 процессоров, Java по умолчанию под 200+ потоков компилятора и garbage collector'а запускает... занафига?... никому не известно.... ответ из Oracle на одном из форумов "у нас enterprise решение, нужно использовать все ресурсы компьютера" )))

Т.ч. даже примитивная программа Hello World начинает создавать под 400-500 потоков и больше... в ряде случаев, это приводит к пушному зверьку, который феерический отсвечивает всеми цветами радуги на системном мониторинге и грузит процессор под 100%.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465439
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На одном из буржуйских форумов, читал негодование человека, у него какая-то примитивная программа на Java для мониторинга, которая на "обычном" компе потребляла десяток мегабайт, на сервере хотела > 2 Gb оперативки ))) просто на сервере 256 процессоров )))

Весь прикол заключался в том, что программа встроена была в ядро Солярки и доступа к ключам JVM не было. И, вроде, писец доходил до того, что она на сервере вообще запустится не могла.... в результате сервер "не все функции выполнял". В общем, дефолтные значения в Java Oracle менять отказался, сказав "что Java создана для серверов и должна использовать все возможные ресурсы " ))) пообещали наехать на коллег которые пишут Солярку и сделать патч для Солярки ))) чем дело кончилось, на форуме не сообщалось )))
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465445
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevТ.ч. даже примитивная программа Hello World начинает создавать под 400-500 потоков и больше... в ряде случаев, это приводит к пушному зверьку, который феерический отсвечивает всеми цветами радуги на системном мониторинге и грузит процессор под 100%.
Описано красочно. И... очень эмоционально. Я охотно верю в то что рантайм оставляет за собой право
запускать нужное количество потоков под нужный getAvailableProcessors() но в то что это приводит
к пушному зверьку для HelloWorld я не верю. Или надо детально разбираться уже имея доступ к консоли.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465446
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВесь прикол заключался в том, что программа встроена была в ядро Солярки и доступа к ключам JVM не было. И, вроде, писец доходил до того, что она на сервере вообще запустится не могла.... в результате сервер "не все функции выполнял". В общем, дефолтные значения в Java Oracle менять отказался, сказав "что Java создана для серверов и должна использовать все возможные ресурсы " ))) пообещали наехать на коллег которые пишут Солярку и сделать патч для Солярки ))) чем дело кончилось, на форуме не сообщалось )))
Насколько я понимаю "хозяин" приложения встроил запуск приложения на java ... в т.н. ядро солярки и не дал возможности
управлять ключами и опциями. Что-ж. Он - сам себе злобный Буратино.

Но если в этой формулировке убрать "java" и заменить это на что-то другое, то становиться очевидным что это configuration
bug и его надо фиксить.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465460
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton....но в то что это приводит
к пушному зверьку для HelloWorld я не верю. Или надо детально разбираться уже имея доступ к консоли.
Приводит. Когда на сервере крутится много приложений HelloWorld и каждое пытается дофига потоков создать. Накладные расходы представить можно.

В реальности на 40-ка ядерном сервере, на реальной системе, было примерно 5-6 пользовательских потоков (потоков мало, т.к. NIO) и >60 системных. Пушной зверек по показателям системного мониторинга был во всей красе. Судя по всему, overhead на переключения потоков при __таком__ паттерне нагрузки был ужасающий. Что именно не нравилось шедулеру и что безумно нагружало систему, не знаю. Но ситуация была совершенно ненормальная. CPU просто непонятно куда девалось, в между-thread пространство.

Когда в приложении было 200 пользовательских потоков (обычный IO) и те же 60 системных - эффект не проявлялся. Загрузка CPU была нормальной. Как только пользовательских потоков стало мало - потребление CPU выросло в разы (по всей системе) и возможно даже на порядки (по выполняемому коду). Сократили системные потоки (до 4 потоков на GC и 2 потока на JIT) - все нормализовалось, потребление CPU упало в 3-4 раза. Статистика в gc.log осталась примерно той же.

Ну и у человека тоже ситуация была красивая. Сервер с 256-процессорами и какой-то банальный агент не может запуститься... не хватает памяти )))
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465461
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton....Но если в этой формулировке убрать "java" и заменить это на что-то другое, то становиться очевидным что это configuration
bug и его надо фиксить.
Да это понятно.

Дело в другом. Что фиг кто о таком __документированном__ поведении Java знает и задумывается. А когда видишь такое в живую.... месяц уходит, что бы понять, в чем же тут дело и кто виноват.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465780
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы замечательно описали последствия от применения "безискусьвенного интеллекта" (имею ввиду т.н. "умное" перераспределение ресурсов в динамике).
Вопрос из сабжа только остаётся открытым, кто виноват должен браться за ум? и что делать возьмётся ли?
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465797
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevSiemarglчто надо пояснять свою мысль.

У меня она была проста - компилятор в памяти => несколько сотен Мб.

Хотелось бы видеть откуда взялась цифра "несколько сотен"

По ощущениям, там даже несколько десятками не пахнет. Накладные расходы по памяти для Java 1.6 были порядка 32 Mb под скомпилированный код (можно уменьшить или увеличить). Сколько занимает собственно код самого компилятора, не знаю. Но сомневаюсь, что это больше десятка - двух десятков мегабайт. Т.е. на мой взгляд, накладные расходы и до 100 Mb не дотягивают.
Несколько сотен - до 400Мб можно наблюдать при компиляции чего то большого С++ что gcc, что clang.
Поскольку уровень оптимизации в Яве сравним - то можно предположить, что и затраты на компиляцию будут сравнимыми - язык конечно проще, но не сильно.

"По ощущениям" - метрика конечно еще та, но:
- поковыряв доступными системными инструментами Rammap/vmmap, я конкретики тоже не увидел.
- Helloword должен загрузить как минимум интерпретатор - но он потребляет 12Мб

С этой стороны непонятно, куда используется память.

Еще погуглил на тему Java Mission Control - нашел кое что интересное
-
YouTube Video
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465810
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу GC. Мы как-то делали скрипты (Power Shell), занимающиеся многопоточным копированием файлов. Они забивали абсолютно всю память, 99.99% процессорного времени и вывешивали намертво сервера. Довольно нетривиальным способами + постоянным ручным вызовом сборщика удалось довести до более-менее работоспособного состояния.

Рядом тихи-мирно трудился нативный сервер (Delphi) с раз в 5 большим числом потоков, поставляя эти файлы скрипту и разруливая кучу запросов. Занимая мизер ресурсов.

Вот такой опыт.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39465836
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще добавлю. Когда говорят о том что GC плох - то говорят о "GC в вакууме".
На самом деле в Java их существует минимум 2. Классический ParallelGC, старый.
И G1GC который позиционируется как новый ему на замену.

Есть еще SerialGC который почти ничем не отличается от первого алгоритмически
и есть также CMS который проектировался для UI приложений типа сред разработки.
Плюс разные коммерческие с закрытым кодом типа С4, и другие о которых нам не известно.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466111
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЯ думаю что надо пояснять свою мысль.А я знаю , что вы так ничего и не поняли ...
Для Oracle JRE/JDK - виртуальная ява-машина это jvm.dll. JVM с "серверным" (C2) JIT - ~6,3Мб (x86, клиентский - раза в полтора меньше). 64-разрядная JVM (только C2) - ~8,8Мб.
IBM J9 устроена по другому - там, в частности, и ваш любимый AOT в наличиии, но суммарный размер каждого из каталогов с разными вариантами компиляторов - в пределах 30Мб.
Так вот, к чему я всё это ...
Утверждать, что компилятор промежуточного представления в машинный код (бэкэнд) требует столько же ресурсов, что и "полный фарш" (фрон и бэк) - так же странно, как и предполагать, что, после загрузки с диска, мегабайты машинного кода раздуются до сотен мегабайт.
Далее, на моём скриншоте можно увидеть, что "нативный" браузер, загрузив одну страничку требует вдвое больше памяти, чем "ява-пюре" текстовый редактор с вполне приличным функционалом.
У кого как, но лично у меня возникает вопрос - если вполне простая задача обработки данных (отображение несложной HTML страницы веб-сервера) требует сотен мегабайт памяти для данных , то какая разница - сколько экономит нативный код, если объективный пользователь это разницу не сможет даже измерить. Я уж молчу о "почувствовать"?
Нахрена нужен это крестовый поход за "натуральный продукт" и против "богомерзких промежуточных представлений"?

P.S. High Perfomance Java Compiler - это был такой проект на IBM-овском AlphaWorks в начале нулевых. Потом межделмаш перевёл проект в категорию коммерческих. Весьма вероятно, что нынешний AOT из J9 - наследник того самого HPJC.
Несколько ранее пророки встроили "jvm реального времени", сейчас будут встраивать AOT - нормальный деловой процесс.
Накойхер было поднимать безоглядный кипеш?
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466580
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov...Утверждать, что компилятор промежуточного представления в машинный код (бэкэнд) требует столько же ресурсов, что и "полный фарш" (фрон и бэк) - так же странно, как и предполагать, что, после загрузки с диска, мегабайты машинного кода раздуются до сотен мегабайт.Да, с первым утверждением я согласен (недодумал) - фронтенд С++ должен потреблять львиную долю ресурсов.

Со вторым - а если мегабайты П-кода (rt.jar 52Мб) превращаются в сотни машинного? Кстати, у п-кода, да еще ООП должно быть весьма сложно реализовать возможность постраничной загрузки по pagefault - требованию. Т.е в память надо грузить все и ой - это же zip - памяти надо вдвое. Ну или очень медленно.

Basil A. Sidorov..Далее, на моём скриншоте можно увидеть, что "нативный" браузер, загрузив одну страничку требует вдвое больше памяти, чем "ява-пюре" текстовый редактор с вполне приличным функционалом.
У кого как, но лично у меня возникает вопрос - если вполне простая задача обработки данных (отображение несложной HTML страницы веб-сервера) требует сотен мегабайт памяти для данных , то какая разница - сколько экономит нативный код, если объективный пользователь это разницу не сможет даже измерить. Я уж молчу о "почувствовать"?
Нахрена нужен это крестовый поход за "натуральный продукт" и против "богомерзких промежуточных представлений"?Давайте сравнивать огурцы таки с огурцами -
Jedit vs Notepad++
потребляет в 3.5 раза больше памяти и ввода-вывода при загрузке, и стартует (в виртуалке - а скоро все там будем) 5.4 сек против 1.5 сек
Вполне себе можно прочувствовать и измерить. Кажется уже обсуждали.

Basil A. Sidorov..
Накойхер было поднимать безоглядный киеш?А это и не кипешь - это собственно положительная реакция на нововведение. Вот скоро выйдет Java9, померяем и сравним - стало ли лучше и насколько.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466617
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl5.4 сек против 1.5 сек
твоя работа в постоянном перезапуске приложения заключается?

Не вздумай работать с приложениями Autodesk
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466649
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglСо вторым - а если мегабайты П-кода (rt.jar 52Мб) превращаются в сотни машинного? Кстати, у п-кода, да еще ООП должно быть весьма сложно реализовать возможность постраничной загрузки по pagefault - требованию. Т.е в память надо грузить все и ой - это же zip - памяти надо вдвое. Ну или очень медленно.
Нет. Не превращаются. Ну.... не все 52Мб. Если вы запустите java -verbose:class то увидите спул работы Classloaders.
Грузится не весь rt.jar а только те classes которые есть в зависимостях.

Кстати этот аспект повлиял на введение модулей в Java9.
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466672
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSiemargl5.4 сек против 1.5 сек
твоя работа в постоянном перезапуске приложения заключается?

Не вздумай работать с приложениями AutodeskЭто да, мне иногда нужно просмотреть сотню-другую dwg-файлов. Чтобы не тр-ься с DЦП TrueView, я просто говорю - присылайте сразу в pdf

maytonSiemarglСо вторым - а если мегабайты П-кода (rt.jar 52Мб) превращаются в сотни машинного? Кстати, у п-кода, да еще ООП должно быть весьма сложно реализовать возможность постраничной загрузки по pagefault - требованию. Т.е в память надо грузить все и ой - это же zip - памяти надо вдвое. Ну или очень медленно.
Нет. Не превращаются. Ну.... не все 52Мб. Если вы запустите java -verbose:class то увидите спул работы Classloaders.
Грузится не весь rt.jar а только те classes которые есть в зависимостях.

Кстати этот аспект повлиял на введение модулей в Java9.Ок, но это приличная разница между п- и машкодом
-распаковать zip - рекурсивно выбрать из него всех предков нужных классов, скомпилировать, слинковать и
-загрузить 4кб по нужному смещению из dll
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466680
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предков еще можно выбрать по имени каталога, которое совпадает с иерархией классов, но вот перекрестные зависимости.....
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466714
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonSiemarglСо вторым - а если мегабайты П-кода (rt.jar 52Мб) превращаются в сотни машинного?....
Нет. Не превращаются. ....
Нет. Не превращаются. Физически превратиться не могут. Кто же им даст?
Параметр такой есть, командной строки:

-XX:ReservedCodeCacheSize=32m

Т.ч. максимум в 32m превратиться могу (by default).

Ох уж эти сказочники, ох уж эти сказочники.... ( C )

[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466748
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Java JIT - всё? Берёмся за ум
    #39466795
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я с таким сообщением ни разу не сталкивался. Вот 750-800 мегабайт под классы (PermGen) - бывало приходилось выделять, а с данной областью памяти проблем не было
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 4 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Java JIT - всё? Берёмся за ум
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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