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

  Рет қаралды 6,966

Podlodka

Podlodka

Күн бұрын

Пікірлер: 69
@hurricane-rus
@hurricane-rus 3 ай бұрын
Прекрасное интервью! Пожалуйста, пригласите на следующие подкасты Евгения Борисова или Павла Финкельштейна
@pvlnsk1
@pvlnsk1 2 ай бұрын
Можно и без или😅 классно будет обоих в разные выпуски пригласить
@kirillgavrilov9681
@kirillgavrilov9681 11 күн бұрын
Интересный выпуск! Послушал с огромным удовольствием
@alexhali6003
@alexhali6003 3 ай бұрын
Вооо, неужели интересный выпуск! Гораздо лучше, чем очередная охуительная история про переезд в очередную страну.
@litterjunk8632
@litterjunk8632 2 ай бұрын
ну и тут не обошлось без гунявого блеяния про "какой я в искусстве"
@pvlnsk1
@pvlnsk1 2 ай бұрын
Липский легенда родом из Новосибирска, спасибо, что позвали🔥 На одном дыхании слушал, хочется регулярно потреблять подробный контент. Нет ли у Никиты подкаста?
@МитяКараченцев
@МитяКараченцев 3 ай бұрын
Как это reflection ничего не стоит при исполнении? А как же SecurityManager? Каждый вызов метода или обращение к полю идёт через него. И если выключить рефлексию на уровне JVM, то он будет выбрасывать исключение. Всё это требует ресурсов.
@enginetica
@enginetica 3 ай бұрын
Тяжело было за раз осилить из-за длины. Но за несколько заходов осилил - было интересно.
@jolymourner4014
@jolymourner4014 3 ай бұрын
Супер интересно, спасибо ❤❤❤
@anyman777
@anyman777 3 ай бұрын
лампово. Гость позитивный👍
@АлександрКовалев-с2о5я
@АлександрКовалев-с2о5я 2 ай бұрын
Спасибо большое за выпуск
@cleverscript
@cleverscript 2 ай бұрын
а компилятор что не входит в платформу? (четвертый элемент)
@noraltavir
@noraltavir 3 ай бұрын
История с переходом из Оберона на Джаву у меня была та же, только лет на 10 позже.
@rudolfsikorsky7900
@rudolfsikorsky7900 3 ай бұрын
Интересно, что это была за советская база, которая в 85 году позволила на коленке сделать 32-разрядную машину. На ум приходит только модульная 588 серия. Если на ней запилили, то уважуха, работа вообще не из лёгких...
@dmitriy4415
@dmitriy4415 3 ай бұрын
А теперь посмотрите тесты java и JavaScript на bun и удивитесь "медленности" жса. Современные движки жс создают точно такой же байт код.
@АдамСмит-ы7р
@АдамСмит-ы7р 3 ай бұрын
Плохо вяжется утверждение о том, что динамические языки принципиально медленные, с тем, что динамические среды исполнения могут спекулировать и выносить предположения за пределы горячего кода - казалось бы, можно перед горячим циклом убедиться, что на вход переданы, как и обычно в этот метод, числа, после чего дробить их с той же эффективностью, что и в любом другом языке, чем тот же V8 довольно успешно и занимается
@valerysmirnov9535
@valerysmirnov9535 3 ай бұрын
Не понимаю в чем проблема с этим утверждением. Динамическим языкам надо выводить типы в рантайме, чтобы все быстро работало. Но есть особенность, что многие пишут мегаморфный код - тут уже ни один JIT не сможет вывести типа
@АдамСмит-ы7р
@АдамСмит-ы7р 3 ай бұрын
@@valerysmirnov9535 ну какой-то оверхед, конечно, есть, но в контексте кода, которому действительно критична производительность, его вклад минимален на практике (кто-то же пишет зачем-то на JS микросервисы, работающие под заметной нагрузкой - и вполне себе сносный получают перформанс). А так можно, конечно, долго говорить о том, как круто писать шаблонный код на C++, у компилятора будет информация про весь поток исполнения, никаких виртуальных функций, оптимизация полиморфного кода под каждый контекст отдельно с большим временным бюджетом на компиляцию - куда уж там джаве с её вездесущими ссылками, виртуальными функциями и проверками на null. На практике же, хотя такой взгляд не то чтобы оторван от реальности, оказывается, что усилиями разработчиков рантаймов удаётся в значительной степени побороться со всем: короткоживущие объекты скаляризуются, методы девиртуализируются, проверки на null (если не стреляют) вообще в обработчик SIGSEGV вынесены - и производительность вполне сопоставимая
@MaruiInfantry
@MaruiInfantry 3 ай бұрын
Приходи на собес и доказывай чо хошь. ))))
@АдамСмит-ы7р
@АдамСмит-ы7р 3 ай бұрын
@valerysmirnov9535 ну какой-то оверхед, конечно, есть, но в контексте кода, которому действительно критична производительность, его вклад минимален на практике (кто-то же пишет зачем-то на JS микросервисы, работающие под заметной нагрузкой - и вполне себе сносный получают перформанс). А так можно, конечно, долго говорить о том, как круто писать шаблонный код на C++, у компилятора будет информация про весь поток исполнения, никаких виртуальных функций, оптимизация полиморфного кода под каждый контекст отдельно с большим временным бюджетом на компиляцию - куда уж там джаве с её вездесущими ссылками, виртуальными функциями и проверками на null. На практике же, хотя такой взгляд не то чтобы оторван от реальности, оказывается, что усилиями разработчиков рантаймов удаётся в значительной степени побороться со всем: короткоживущие объекты скаляризуются, методы девиртуализируются, проверки на null (если не стреляют) вообще в обработчик SIGSEGV вынесены - и производительность вполне сопоставимая
@valerysmirnov9535
@valerysmirnov9535 3 ай бұрын
@@АдамСмит-ы7р мы дошли до того уровня развития процессоров, что в айтишке стало мейнстримом делать вещи самым неэффективным образом Если я могу сделать нормально - сделают нормально Кроме C и плюсов есть куча компилируемых языков с большим количеством статических гарантий
@ns-bj6nj
@ns-bj6nj 3 ай бұрын
Наконец-то!
@ДмитрийКарпич
@ДмитрийКарпич 3 ай бұрын
Не холливара ради, просто мнение - в современном ландшафте с контейнеризацией ИМХО JVM выглядит лишним звеном. Кажется, что прямая упаковка в контейнер какого-нибудь собранного под Linux гошного сервиса выглядит более оптимальной по ресурсам и принципу работы. Ну и может быть еще когда-нибудь допилят WASM edge-servers. Пока все они что я видел чистый proof of concept и не вывозят ни по какому параметру.
@qandak
@qandak 3 ай бұрын
WASM же никто не будет руками писать... так какая разница с чего будем компилить? Если прям совсем не кошерно в Java AOT - есть реализации, где можно .class байткод в WASM компилить, со Scala и Kotlin можно сразу. А JVM в контейнерах такой же лишниий, как Node.js или любой vm рантайм, если контейнеров по несколько десятков штук на условном хосте.
@ДмитрийКарпич
@ДмитрийКарпич 3 ай бұрын
@@qandak Соглашусь, рантайм в контейнере тоже костыль. Гошечка - для попсы и раст для любителей - и то и другое нормально пишется и собирается в бинарник, который в скратч и кладем. Все! И да, WASM руками конечно не будут писать. И не особо важно из чего он будет компилится. Тут скорее удобно, что у нас по сути есть рантайм для него в составе самого сервера. Хотя, по чесноку это примерно как NJS для nginx - на этом можно написать логику, но зачем? ИМХО, может я его не так понимаю, легко заблудится в маркетинговой мишуре.
@alexeialexei7910
@alexeialexei7910 3 ай бұрын
Привет! Часто среди коллег слышу похожее мнение. Короткий ответ - JIT компилятор. Чуть более развернуто - умные дядьки, которые в индустрии очень давно, убеждены, что будущее за интерпретируемыми языками. Именно из-за того, что агрессивные оптимизации их рантаймов + анализ реального исполнения кода будут давать преимущество в перфомансе над компилируемыми в машинный код языками.
@ДмитрийКарпич
@ДмитрийКарпич 3 ай бұрын
@@alexeialexei7910 Привет! Ну, возможно, однако в компилируемых так же есть сходные инструменты. Например PGO в гошечке. Да и микросервисный подход скорее всего будет давать практически сразу оптимальный код, а общая тенденция все же идти в эту сторону, насколько я понимаю. Но в целом интересно, я думал что в основном просто по привычке идут в этом стеке, типа "Уже столько всего написано, что глупо менять", что тоже валидный аргумент, в общем-то.
@litterjunk8632
@litterjunk8632 2 ай бұрын
Это тебе, чувак, не приходилось контейнеры для 86/arm паковать.
@qwertymangames1800
@qwertymangames1800 2 ай бұрын
1:48:00 Нельзя просто транслировать императивный год Java в Scala и ждать от этого изменений. Он как был так и остался императивным кодом. Конечно тут Java выиграет, ведь это нативный код платформы JVM. На Scala нужно писать в функциональном стиле, чтобы были все плюсы функционального подхода. И сравнивать императивный код на Java нужно с ФУНКЦИОНАЛЬНЫМ кодом на Scala. Иначе это сравнение вообще не имеет смысла. Как обычно делаем бенчмарки лишь бы показать какая Java крутая. В зависимости от бенчмарка можно сделать лидером вообще любой язык. Один бенчмарк не показатель эффективности.
@ChannelCheesecake
@ChannelCheesecake Ай бұрын
Функциональный код на Scala до нескольких раз медленнее, чем императивный код на Scala
@qwertymangames1800
@qwertymangames1800 Ай бұрын
@@ChannelCheesecake даже императивный код на Scala медленнее кода на Java потому что в Scala всё иммутабельное. Scala сильна не скоростью, а стабильностью. В функциональной парадигме достаточно математически доказать эффективность кода и он не будет вызывать багов. А если нужна скорость пиши на чистом Си с Ассемблерными вставками. ООП тоже сильно затратная в плане ресурсов парадигма. Особенно когда код работает на виртуальной машине как JVM - это очень медленно
@ChannelCheesecake
@ChannelCheesecake Ай бұрын
@@qwertymangames1800 ну в Scala не всё иммутабельное. На равне с val есть var, на равне с scala.collection.immutable есть scala.collection.mutable. Последние 3 года работаю на Scala и я лично смотрел байткод, в который язык может компилироваться. Императивная Scala в среднем по скорости как императивная Java, где-то медленнее за счет сильной системы типов (дополнительные чеки), где-то быстрее по этой же причине (компиляторные оптимизации). А про «математически доказать» посмеялся)) Scala, Haskell и т.д. вообще не об этом - эти языки дают дополнительные гарантии, выражая их через типы, вот Coq, Idris это другое дело
@winandfx
@winandfx 3 ай бұрын
Никак не разберусь, почему через сутки работы спарк-приложение в yarn падает с java heap space. И честно говоря, мне уже хочется знать о jvm ничего.
@winandfx
@winandfx 3 ай бұрын
Оказалось, всё дело в том, что кто-то добавил sys.addShutdownHook из-за чего объекты не собирались GC
@litterjunk8632
@litterjunk8632 2 ай бұрын
Именно поэтому новых приложений сейчас на Java уже не начинают :) Только тянуть унаследованный кал.
@AstorioQanto
@AstorioQanto 2 ай бұрын
@@litterjunk8632а на чем начинают, в основном?
@litterjunk8632
@litterjunk8632 2 ай бұрын
@@AstorioQanto node, go, kotlin для себя rust
@milordplus
@milordplus 2 ай бұрын
Интересны две вещи: 1 - у леди нога не отекла? 2 - а что если бы джентльмены тоже так задрали ноги?
@egomate
@egomate Ай бұрын
интересно то, почему ютуб рекомендовал вам это видео, а не вот эти вопросы, которые вы озвучили :)
@acrapid7845
@acrapid7845 16 күн бұрын
Было бы в точности то же самое, что и в данном случае, а также в случае, если бы ног было 0 в поле зрения.
@mierce
@mierce 3 ай бұрын
мужик как будто на тех.собесе сидит
@AxelMcAlen
@AxelMcAlen 3 ай бұрын
Гость люто волнуется. Тяжело слушать. Предупреждайте гостей чтобы готовились к выступлениям, чтобы не тряслись ручки, голос и повествование было связным. В остальном, спасибо за труд
@litterjunk8632
@litterjunk8632 2 ай бұрын
Наше поколение вообще не умеет связно и внятно говорить. У нас не было риторики в школе, а интернет пришел слишком поздно, не успели сформироваться навыки. Тем более чувак сразу работать начал с институтских проектов, без реальных клиентов с которыми нужно коммуницировать, потом продалься в большие компании, где то же главный и единственный необходимый навык социализации - лизать зад начальству.
@dmitriybradul7719
@dmitriybradul7719 2 ай бұрын
Думаю, это стиль общения гостя.
@pvlnsk1
@pvlnsk1 2 ай бұрын
Слушал в аудиоформате без видео, ничего подобного не заметил.
@AxelMcAlen
@AxelMcAlen 2 ай бұрын
@@pvlnsk1 это же прекрасно!
@pvlnsk1
@pvlnsk1 2 ай бұрын
@@AxelMcAlen я к тому, что не думаю, что Никита волновался) В этой теме он настолько хорош, что не думаю, что ему требовалась подготовка, он по сути живёт этим)
@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 3 ай бұрын
@@mrkandreev продолжайте искать корреляции.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
Как остановят YouTube | ТСПУ и DPI | Cоздатель GoodbyeDPI
27:30
Podlodka #172 - Java
2:09:19
Podlodka
Рет қаралды 8 М.
Дмитрий Волыхин - System Design-интервью для практиков
49:47
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 9 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН