Тёмный

Какая JVM лучшее всех? | Java, JVM Architecture, GraalVM, HotSpot JVM | Podlodka Podcast  

Podlodka
Подписаться 29 тыс.
Просмотров 3,5 тыс.
50% 1

Опубликовано:

 

19 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 33   
@hurricane-rus
@hurricane-rus 9 часов назад
Прекрасное интервью! Пожалуйста, пригласите на следующие подкасты Евгения Борисова или Павла Финкельштейна
@alexhali6003
@alexhali6003 14 часов назад
Вооо, неужели интересный выпуск! Гораздо лучше, чем очередная охуительная история про переезд в очередную страну.
@jolymourner4014
@jolymourner4014 3 дня назад
Супер интересно, спасибо ❤❤❤
@anyman777
@anyman777 23 часа назад
лампово. Гость позитивный👍
@noraltavir
@noraltavir 3 дня назад
История с переходом из Оберона на Джаву у меня была та же, только лет на 10 позже.
@МитяКараченцев
@МитяКараченцев 2 дня назад
Как это reflection ничего не стоит при исполнении? А как же SecurityManager? Каждый вызов метода или обращение к полю идёт через него. И если выключить рефлексию на уровне JVM, то он будет выбрасывать исключение. Всё это требует ресурсов.
@АдамСмит-ы7р
@АдамСмит-ы7р 3 дня назад
Плохо вяжется утверждение о том, что динамические языки принципиально медленные, с тем, что динамические среды исполнения могут спекулировать и выносить предположения за пределы горячего кода - казалось бы, можно перед горячим циклом убедиться, что на вход переданы, как и обычно в этот метод, числа, после чего дробить их с той же эффективностью, что и в любом другом языке, чем тот же V8 довольно успешно и занимается
@valerysmirnov9535
@valerysmirnov9535 3 дня назад
Не понимаю в чем проблема с этим утверждением. Динамическим языкам надо выводить типы в рантайме, чтобы все быстро работало. Но есть особенность, что многие пишут мегаморфный код - тут уже ни один JIT не сможет вывести типа
@АдамСмит-ы7р
@АдамСмит-ы7р 3 дня назад
@@valerysmirnov9535 ну какой-то оверхед, конечно, есть, но в контексте кода, которому действительно критична производительность, его вклад минимален на практике (кто-то же пишет зачем-то на JS микросервисы, работающие под заметной нагрузкой - и вполне себе сносный получают перформанс). А так можно, конечно, долго говорить о том, как круто писать шаблонный код на C++, у компилятора будет информация про весь поток исполнения, никаких виртуальных функций, оптимизация полиморфного кода под каждый контекст отдельно с большим временным бюджетом на компиляцию - куда уж там джаве с её вездесущими ссылками, виртуальными функциями и проверками на null. На практике же, хотя такой взгляд не то чтобы оторван от реальности, оказывается, что усилиями разработчиков рантаймов удаётся в значительной степени побороться со всем: короткоживущие объекты скаляризуются, методы девиртуализируются, проверки на null (если не стреляют) вообще в обработчик SIGSEGV вынесены - и производительность вполне сопоставимая
@MaruiInfantry
@MaruiInfantry 2 дня назад
Приходи на собес и доказывай чо хошь. ))))
@АдамСмит-ы7р
@АдамСмит-ы7р 2 дня назад
@valerysmirnov9535 ну какой-то оверхед, конечно, есть, но в контексте кода, которому действительно критична производительность, его вклад минимален на практике (кто-то же пишет зачем-то на JS микросервисы, работающие под заметной нагрузкой - и вполне себе сносный получают перформанс). А так можно, конечно, долго говорить о том, как круто писать шаблонный код на C++, у компилятора будет информация про весь поток исполнения, никаких виртуальных функций, оптимизация полиморфного кода под каждый контекст отдельно с большим временным бюджетом на компиляцию - куда уж там джаве с её вездесущими ссылками, виртуальными функциями и проверками на null. На практике же, хотя такой взгляд не то чтобы оторван от реальности, оказывается, что усилиями разработчиков рантаймов удаётся в значительной степени побороться со всем: короткоживущие объекты скаляризуются, методы девиртуализируются, проверки на null (если не стреляют) вообще в обработчик SIGSEGV вынесены - и производительность вполне сопоставимая
@valerysmirnov9535
@valerysmirnov9535 2 дня назад
@@АдамСмит-ы7р мы дошли до того уровня развития процессоров, что в айтишке стало мейнстримом делать вещи самым неэффективным образом Если я могу сделать нормально - сделают нормально Кроме C и плюсов есть куча компилируемых языков с большим количеством статических гарантий
@ДмитрийКарпич
@ДмитрийКарпич 2 дня назад
Не холливара ради, просто мнение - в современном ландшафте с контейнеризацией ИМХО JVM выглядит лишним звеном. Кажется, что прямая упаковка в контейнер какого-нибудь собранного под Linux гошного сервиса выглядит более оптимальной по ресурсам и принципу работы. Ну и может быть еще когда-нибудь допилят WASM edge-servers. Пока все они что я видел чистый proof of concept и не вывозят ни по какому параметру.
@qandak
@qandak 2 дня назад
WASM же никто не будет руками писать... так какая разница с чего будем компилить? Если прям совсем не кошерно в Java AOT - есть реализации, где можно .class байткод в WASM компилить, со Scala и Kotlin можно сразу. А JVM в контейнерах такой же лишниий, как Node.js или любой vm рантайм, если контейнеров по несколько десятков штук на условном хосте.
@ДмитрийКарпич
@ДмитрийКарпич 2 дня назад
@@qandak Соглашусь, рантайм в контейнере тоже костыль. Гошечка - для попсы и раст для любителей - и то и другое нормально пишется и собирается в бинарник, который в скратч и кладем. Все! И да, WASM руками конечно не будут писать. И не особо важно из чего он будет компилится. Тут скорее удобно, что у нас по сути есть рантайм для него в составе самого сервера. Хотя, по чесноку это примерно как NJS для nginx - на этом можно написать логику, но зачем? ИМХО, может я его не так понимаю, легко заблудится в маркетинговой мишуре.
@alexeialexei7910
@alexeialexei7910 3 часа назад
Привет! Часто среди коллег слышу похожее мнение. Короткий ответ - JIT компилятор. Чуть более развернуто - умные дядьки, которые в индустрии очень давно, убеждены, что будущее за интерпретируемыми языками. Именно из-за того, что агрессивные оптимизации их рантаймов + анализ реального исполнения кода будут давать преимущество в перфомансе над компилируемыми в машинный код языками.
@ns-bj6nj
@ns-bj6nj 2 дня назад
Наконец-то!
@mierce
@mierce 3 дня назад
мужик как будто на тех.собесе сидит
@winandfx
@winandfx 3 дня назад
Никак не разберусь, почему через сутки работы спарк-приложение в yarn падает с java heap space. И честно говоря, мне уже хочется знать о jvm ничего.
@winandfx
@winandfx День назад
Оказалось, всё дело в том, что кто-то добавил sys.addShutdownHook из-за чего объекты не собирались GC
@Teemofey
@Teemofey 3 дня назад
Как можно уйти из Huawei в JetBrains, что за бред.
@alexmatveev7246
@alexmatveev7246 3 дня назад
Вы пробовали работать в китайской компании и культуре? Я вот от коллег наслышан, что это очень специфический опыт.
@Teemofey
@Teemofey 3 дня назад
@@alexmatveev7246 И пробовал, и наслышан - всё ок. В то же время в нынешней JetBrains атмосфера абсолютно больная.
@MaruiInfantry
@MaruiInfantry 3 дня назад
Надоело быть лидом 50 китайев и захотелось на пенсию в микро-команды из 3-4 синьёрс-онли и лидс-онли?
@mrkandreev
@mrkandreev 3 дня назад
Из Huawei [Novosibirsk, Russia] в JetBrains [Limassol (Lemesos), Cyprus], если говорить точнее. То есть из Russia в Cyprus.
@enable4
@enable4 2 дня назад
@@mrkandreev продолжайте искать корреляции.
Далее
Тест 6 ИИ программистов
32:33
Просмотров 14 тыс.