|
|
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
mayton.... Я месседж Димы понял так. - Мы не можем наращивать производительность в одном слое архитектуры. Например подтянули больше ядер процессоров - получили когерентность. Блокировки... спины.. стали взымать с нас "дань" просто так. Просто подняли тактовую частоту - надо поднимать и частоту системной шины и как следствие планок памяти и как следствие HDD тоже должны быстрее отдавать отклики. Я к этому пришел в нулевых, когда апгрейтил свой комп для игр. Вроде же есть понятие "масштабируемость". Если конкретная задача и конкретная алгоритм нормально масштабируется - добавили нужного ресурса, получили обещанный прирост производительности Если не масштабируется, то хоть процессоров, хоть памятью, хоть дисками можно весь дом забить - быстрее работать не будет И никак это ни с процессорами, ни со скоростью памяти не связано. Исключительно с задачей, используемым алгоритмом и кривизной рук архитектора/программиста. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 20:55 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Dima T....Тормоза в 5-7 раз! Какой тюнинг компилятора это перекроет? Я приводил реальную задачу, на реальном проекта Прикладная система на конкретной железяке (Numa 2 core, 40 ядер) жестоко отжирала CPU. Настройками JVM (GC и JIT) потребление CPU снизилось в 3-4 раза. Куда уходило CPU - я не выяснил (да и не нафиг это не интересно), просто куда-то уходило, "в между модульное пространство". В данном случае, точнее "в между thread пространство". Причину (особенности конфигурации продакшен сервера) и метод лечения (нужные ключи JVM) нашли, на этом разбирательство завершили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 21:01 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
P.S. Изначально грешили на низкую скорость ConcurrentLinkedList и чрезмерное обилие Atomic'ов в коде. Пытались оптимизировать код. Реальность оказалась проще ))) Шедулер потоков Linux и JVM, почему-то стал "не так" работать. Вот честно, брать сорцы и разбираться "как же он на самом деле работает" - можно годами. Фиг какая фирма такие разбирательства в рабочее время и необходимое оборудование оплатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 21:05 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВроде же есть понятие "масштабируемость". Это красиво в теории. В дискретной математике. В конечных автоматах и сетях Петри. На практике очень мало задач удачно без потерь масштабируются. Возьмите любую проблему из области баз данных там где мы работаем не с историческими а с актуальными сведениями. И начинается. Шардинг. Партишининг. Это все не безплатно. Кластеры? Они имеют ограничения. Тот-же Oracle RAC Емнип больше 64-х узлов не строится. Есть там сетевые проблемы. Причем лавинно растущие. Хорошо масштабируется только то что вообще не взаимодействует ни с чем. Типа shared nothing. Но мы живем в мире где не shared nothing а скорее наоборот. Shared 100%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 21:08 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Mayton, IMHO теперь Вы начали поднимать "очень толстые темы" mayton....Тот-же Oracle RAC Емнип больше 64-х узлов не строится. Есть там сетевые проблемы.... Нет там сетевых проблем. Там есть финансовые проблемы. Если кто-то оплатил лицензии на Oracle EE на RAC на 64-х узлах... уверяю Вас... у него нет "сетевых проблем". Что бы под этим не подразумевалось. У него проблем ни с сетью, ни с автомобилем, ни с дачей - нет ))) По определению. mayton... Возьмите любую проблему из области баз данных там где мы работаем не с историческими а с актуальными сведениями. И начинается. Шардинг. Партишининг. Это все не безплатно. Что значит "не бесплатно"? Если задача допускает партиционирование - в чем проблема? Если же для задачи партиционирование, как собаке пятая нога, так это и называется "задача (или алгоритм ее решения) не масштабируется". Тот же www.google.com, vk.com, youtube как-то работают ))) и "в скорость памяти" совершенно не упираются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 21:38 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
По поводу масштабируемый, RAC и прочего Бог с ними с OLTP. Это нужно смотреть конкретный код. Возьмем замечательные и популярные ныне системы DWH. Oracle уже много лет назад, позволял делать Materialized View, Query Rewrite, что бы можно было данные __заранее__ пред-агрегировать и не выполнять всю агрегацию в момент обращения пользователя.... В каком же направление развивается ныне DWH решения? Правильно - масштабирование, шардинг, партиционирование, RAC... Возьмем 100500 ядер, выдадим им 100500 SSD дисков, разделим один SELECT SUM(*) c FULL TABLE SCAN по 100 Gb таблице на 100500 мелких Select'ов и будем выполнять их параллельно. Все ядра объединим по FC и InfiniBand. И все это назовем Oracle Exadata, а что бы пользователи понимали, что это не хухры мухры, их БД назовем BigDate и DWH.... А поскольку стоить это будет столько, что даже представить сложно... Exadata будем продавать не целиком, а половинками, четвертинами и по одной восьмой части ))) Только, лично у меня, почему-то возникают сомнения, что в 95% задач, которые решаются на таком оборудование, реально нужен FULL TABLE SCAN по 100-1000 GB таблицам ))). И нельзя было для реальных, практических запросов соорудить уже готовую агригацию на нужном уровне деталировки. Как уже говорили в подфоруме работа про одну российскую компанию "при должно умение, старание и выделенном бюджете, любую базу данных можно сделать самой большой в Европе. И незачем этим гордиться" (не дословно, по памяти) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 22:02 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevПо поводу масштабируемый, RAC и прочего Бог с ними с OLTP. Это нужно смотреть конкретный код. Возьмем замечательные и популярные ныне системы DWH. Oracle уже много лет назад, позволял делать Materialized View, Query Rewrite, что бы можно было данные __заранее__ пред-агрегировать и не выполнять всю агрегацию в момент обращения пользователя.... В каком же направление развивается ныне DWH решения? Правильно - масштабирование, шардинг, партиционирование, RAC... Возьмем 100500 ядер, выдадим им 100500 SSD дисков, разделим один SELECT SUM(*) c FULL TABLE SCAN по 100 Gb таблице на 100500 мелких Select'ов и будем выполнять их параллельно. Все ядра объединим по FC и InfiniBand. И все это назовем Oracle Exadata, а что бы пользователи понимали, что это не хухры мухры, их БД назовем BigDate и DWH.... А поскольку стоить это будет столько, что даже представить сложно... Exadata будем продавать не целиком, а половинками, четвертинами и по одной восьмой части ))) Только, лично у меня, почему-то возникают сомнения, что в 95% задач, которые решаются на таком оборудование, реально нужен FULL TABLE SCAN по 100-1000 GB таблицам ))). И нельзя было для реальных, практических запросов соорудить уже готовую агригацию на нужном уровне деталировки. Как уже говорили в подфоруме работа про одну российскую компанию "при должно умение, старание и выделенном бюджете, любую базу данных можно сделать самой большой в Европе. И незачем этим гордиться" (не дословно, по памяти) Вот правильная мысль. Только для другой моей темы - грамотные люди эксплуатируют чужую лень, зарабатывая на этом. // мод UFO on Яву изобрели Sun, Oracle и IBM чтобы получше продавались их суперкомпьютеры, потому что иначе все начали считать на копеечных интельПК - хватало ресурсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 22:37 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevТот же www.google.com, vk.com, youtube как-то работают ))) и "в скорость памяти" совершенно не упираются. Все примеры - разные и неудачные. google.com - по большей части hadoop. Тоесть исторические сведения. Не реал-тайм. Там - масса хитростей и финтов как уйти от конкуренции и нагрузки. Вобщем хадуп он в африке слон. Нет транзакций. Хадуп индекс обещает что индексирует ваш сайт. Но когда он сделает это. Сейчас или через сутки - на это нет контракта. vk.com - материализация даных причем ненормализованных. Ленты сообщений. Не реляционные. Append-only. По сути это текстовые файлы. Тоже много пространства для манёвра. Тем более что (здесь старик Брюер нам едко усмехается) система класса A+P (availability + partition tolerance). Нет консистентности. youtube - вообще не по адресу. Это хранилище огромных мультимедиа-файлов. Почти вся нагрузка - на видео. A+P. Изменений очень мало. Консистентности нет. По поводу oracle - дайте время поискать пруфы. Это было во времена Oracle10g. Если найду - отпишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2017, 23:58 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
maytonПо поводу oracle - дайте время поискать пруфы. Это было во времена Oracle10g. Если найду - отпишу. Да верю я, что было ограничение на число нод. Ну и что с того? 64 ноды для Oracle это дофига и больше. Будете готовы купить Oracle на 1024 ноды (думаю стоимость лицензии под миллиард долларов уйдет + саппорт под сотню миллионов в год), Ларри Эллисон лично для Вас персональную версию Oracle Database распорядится сделать и лично же вручит лицензию и DVD диск перевязанный ленточкой ))) Не думаю, что Ларри настолько богат, что бы терять клиента, готового заплатить миллиард долларов, из-за каких-то "проблем с сетью" ))) IMHO maytonвсе примеры - разные и неудачные. Примеры задач, которые успешно масштабируются Бессмысленно говорить о производительности или масштабируемости "сферического коня". Одни задачи - лучше масштабируются, другие - хуже. DWH - масштабируются более-менее хорошо, OLTP - хуже и может требовать __переписывание__ системы. Аналогично и холивар JIT/не JIT. C / Java. Одни задачи решаются более эффективно/проще на одном средстве, другие на другом. Ниши применения у них достаточно разные. Никто в здравом уме не будет делать высокопроизводительные видео-кодеки на Java, просто потому, что Java не имеет нужных инструментов (например возможность писать код с SIMD инструкциями). Так же, вряд ли кто-то будет создавать сайт-визитку в I-net на Assembler'е и MMX/SSE командах, что бы "быстрее работало" Но есть одно но... находясь в здравом уме. А знакомство с данным миром и даже данной конференцией ))), вполне убеждает, что данное сочетание слов ко многим людям применимо с большой натяжкой. А вообще, нит рассуждений я уже потерял ))) Все началось с вброса, что кто-то "Мы очень долго пытались всех на%^&ть с JIT, но теперь признаем, что надо просто сделать обычный компилятор". Желательно увидеть хоть какую-то ссылку на официальный сайт, где бы говорилось, что в следующей версии Java JIT не будет, а будет обычный компилятор. Пока такого нет, обсуждать нечего. "Опять-таки случай так называемого вранья" ( C ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 00:47 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Просто не нужно слишком акцентироваться на заголовке - туда развернутую мысль не всунешь. Так что про полный отказ от JIT речь не идет. Просто вместо идеи, что JIT решает все проблемы - признали что нет, не все. И предкомпиляция нужна и даже весьма. Если еще немного обратить внимание на Java9, то можно заметить, что делаются шаги по уменьшению монструозности инсталляции - назвали это модульностью. Leonid KudryavtsevАналогично и холивар JIT/не JIT. C / Java. Одни задачи решаются более эффективно/проще на одном средстве, другие на другом. Ниши применения у них достаточно разные. Никто в здравом уме не будет делать высокопроизводительные видео-кодеки на Java, просто потому, что Java не имеет нужных инструментов (например возможность писать код с SIMD инструкциями). Так же, вряд ли кто-то будет создавать сайт-визитку в I-net на Assembler'е и MMX/SSE командах, что бы "быстрее работало" Ява более эффективна исключительно в интерпрайзном говнокодинге - она простая как тапок и любой "индус" быстро ей обучится. А сайты- визитки продолжат делать на Пыхе. Что же касается эффективности - то нет задач, на которой Ява будет быстрее С, она всегда пусть ненамного но отстает (этим можно обычно пренебречь). Но это если не учитывать, что она жрет память до 10х-кратного объема от компилируемых языков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 10:38 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglЧто же касается эффективности - то нет задач, на которой Ява будет быстрее С, она всегда пусть ненамного но отстает (этим можно обычно пренебречь). Но это если не учитывать, что она жрет память до 10х-кратного объема от компилируемых языков. истинные учёные (которые не бизнесмены) трудозатраты программистов не учитывают никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 13:41 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
и заодно предкомпиляцией подтвердили (да и джитом, как и многоядерностью тоже), что эпоха, когда скоростью железа решали проблемы тормозов, как минимум сделала длительную паузу, и требуются алгоритмы. Не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 13:55 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglЯва более эффективна исключительно в интерпрайзном говнокодинге - она простая как тапок и любой "индус" быстро ей обучится. А сайты- визитки продолжат делать на Пыхе. Я сегодня был на собеседовании. Меня хотят нанять на новый проект. И из трехчасового диалога - мы говорили о Java где-то минут 15. Все остальное - это (навскидку попробую вспомнить): - Java (15 минут. Что-то про автобоксинг. Вобщем говно. Нечего говорить) - Solid (типичные ошибки и нарушения любого их 5 пунктов) - DBMS.Optimiztic-Pessimistic locking. Примеры. - Rest/SOAP/HTTP/ORMs - Scrum/Agile/Estimation - CI/CD - Security. - SQL performance tunning (basics) - GWT/JavaScript. - Code style/Refactoring/SonarQube/Code quality/Metrics - DI, testing И этот список тем не исключительный а типичный. Поэтому "индус" быстро не обучается. Т.к. даже обученый Java индус по прежнему никому не нужен. Таких масса. А нужен тот кто выкурит больше технологий смежных с сабж. Что же касается эффективности - то нет задач, на которой Ява будет быстрее С, она всегда пусть ненамного но отстает (этим можно обычно пренебречь). Но это если не учитывать, что она жрет память до 10х-кратного объема от компилируемых языков. Я не помню ты был участником нашего тяпничного бенчмарка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 15:49 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Ну не всем же индусам работать тимлидами - потому такой длинный список типовому кодеру учить не надо. Это кстати, преимущество Явы (и Питона) - что есть куча готовых инструментов и можно быстро научить новичка "методом обезъяны" mayton..Я не помню ты был участником нашего тяпничного бенчмарка? Был, я переводил на D. И, насколько помню, этот процесс перевода был гораздо более гладким, чем Ява - версия. Т.е. утверждать, что Ява идеально повышает производительность труда, я бы не стал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 18:30 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Я просто хочу акцентировать внимание на то что Java как вещь в себе - никому не нужна. Она сильна вовсе не языком. И вовсе не перформансом. Который по сабжу (как мы помним) весьма неплох .(.. ну порядка 170% потраченого времени от C++ на тестах с 3D Графикой. Тот же Питон вылез на порядки с более худшим резалтом). Но Java сегодня КМК сильна экосистемой фреймворков и библиотек и она сильна своим сообществом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 19:52 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglЭто кстати, преимущество Явы (и Питона) - что есть куча готовых инструментов и можно быстро научить новичка "методом обезъяны" Это преимущество 1С, "индусы" все там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 20:13 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Никоим образом не возражаю. А если удастся за счет AOT выкинуть JIT из памяти (а это он ее жрет - как впрочем и С++ компилятор - Несколько сотен Мб) и с помощью JigSaw уменьшить футпринт, то будет просто супер. Ну разве что за исключением синтаксиса - но это можно списать на вкусовщину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 20:16 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
mayton- Solid (типичные ошибки и нарушения любого их 5 пунктов) Самая типичная ошибка - применение его в стиле "и лоб разобьёт" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2017, 20:17 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
SiemarglА если удастся за счет AOT выкинуть JIT из памяти (а это он ее жрет - как впрочем и С++ компилятор - Несколько сотен Мб) Хуже отсутствующих знаний - только неправильныеjavaw -Xms1g -Xmx1g jedit.jar ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 09:44 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
В 1.8 не знаю (они там с метаспейс больно уж намудрили), в предыдущих Java'ах JIT'у под скомпилированный код выдавали 32 Mb с возможным увеличением максимум до 64 Mb. Даже сильно enterprise проектам (Oracle Customer Care & Billing), вполне хватало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 10:40 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
авторНо Java сегодня КМК сильна экосистемой фреймворков и библиотек Вот многие так говорят. Интересно, что же там такое есть, чего нет у других языков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 12:18 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Не "у других языков", а "у других экосистем". Чтобы перенести C/C++ приложение с одной архитектуры или/и операционной системы на другую требуется: 1. Изначально заботиться о кросплатформенности; 2. Уметь собирать приложение для всех целевых платформ. В случае Java первый пункт реализован JVM, JLS и Java SE (другими pure-java) API, второй - JRE, частью которых является JVM. Про то, что процедура сборки java-приложения не в пример проще и полностью унифицирована - вообще молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 12:31 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Удивительно что вот всё так хорошо, и при этом почти всё более-менее распространенное написано на нативных языках. Фотошоп, Офисы (и MS и бесплатные), Skype, Telegram, Viber (кроме Андроида, то есть - под Андроид написали, но это не привело к мульти-платформенности, пришлось писать на разных языках), все распространенные браузеры. Серверные Nginx, Апач сервер, Mongo DB, Ms Sql, MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 13:42 |
|
||
|
Java JIT - всё? Берёмся за ум
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Т.е 180Мб этого мало? Кроме того, посмотри пик рабочего набора - потому что JIT уже отработал в основном. А виртуальная память не особо интересна пока не используется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2017, 14:20 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39464949&tid=1340359]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 481ms |

| 0 / 0 |
