Мономорфный и полиморфный код, инлайн-кэш, скрытые классы в JavaScript

  Рет қаралды 5,368

Timur Shemsedinov

Timur Shemsedinov

Күн бұрын

Пікірлер: 27
@SentinelMoonlight
@SentinelMoonlight 3 жыл бұрын
Огромное вам спасибо за ваши лекции! Подробно разобранный материал, большое количество примеров и объяснения! Благодаря вашим курсам, я освоила начальный уровень программирования на JS и смогла устроится в топ Беларуских компаний на Node.js разработчика) Спасибо за ваш труд и любовь к своей работе!
@timashoff
@timashoff Жыл бұрын
Именно с этой лекции надо начинать изучение JS Спасибо!
@antonsuhov4222
@antonsuhov4222 Жыл бұрын
0:43 поля 6:27 скрытые классы 10:28 инлайн кэш 14:50 метод 18:47 оптимизация кода для массивов 35:46 инлайн кэш в массивах 42:40 примеры с функциями 50:40 примеры с глобальными свойствами 57:18 итоги 1:01:30 вопрос про скрытые классы 1:05:40 вопрос про оптимизацию
@TimurSevimli
@TimurSevimli Жыл бұрын
Спасибо вам большое Тимур Гафарович! Материал🔥
@TheTexPro
@TheTexPro 2 жыл бұрын
Спасибо большое за такой подробный разбор малоизвестной темы!
@masterguyver84
@masterguyver84 5 жыл бұрын
Супер. Внутренности JS.
@deanArtDev
@deanArtDev 2 жыл бұрын
Шикарно!
@Antonio-fm1sq
@Antonio-fm1sq 3 жыл бұрын
Спасибо!
@Karmazins
@Karmazins 5 жыл бұрын
habr.com/ru/post/303542/ Для полного понимания можно прочитать еще эту статью . Только там упоминается только про 4 уровня, возможно просто устарелая информация.
@alexperemey6046
@alexperemey6046 3 ай бұрын
Там где объясняется, что JS преобразует числа в массиве в объекты Number(X) скорее всего ошибка. Мне кажется Number - это все еще number. new Number - это уже боксирование в Object... new Number(10) !== 10. И new Number(10) !== new Number(10). Оно ведет себя как object В то же время 10 === Number(10)
@TimurShemsedinov
@TimurShemsedinov 3 ай бұрын
Так и есть, со стороны js кода, т.е. такие контракты возвращаются в js, а внутри v8 там система многоуровневого боксирования значений, по сути, любое значение в боксе, но на ружу разные интерфейсы торчат, иногда интерфейс скаляра, а иногда объекта. Послушаете Деми Мурыча по этому поводу, мы недавно с ним стрим сделали
@alexperemey6046
@alexperemey6046 3 ай бұрын
@@TimurShemsedinov Т.е. способом вызова new или без него я запрашиваю разные преобразования внутреннего интерфейса обертки Number V8 в интерфейс js типов
@TimurShemsedinov
@TimurShemsedinov 3 ай бұрын
@@alexperemey6046 в V8 да, но как в других движках, это может быть разным способом реализовано, так что можно об этом думать только с точки зрения контракта, как это нам видно
@toscaantosca4541
@toscaantosca4541 4 ай бұрын
Спасибо за видео! А после выхода в деоптимизацию возможен возврат в оптимизацию и использование накопленных инлайн кешей? Или заново будет собирать инлайн кеши.
@TimurShemsedinov
@TimurShemsedinov 4 ай бұрын
Обычно нет, есть специальное api, которое можно пробросить в js и дернуть, чтобы все перевычислилось, но кто такое может, то ему уже проще написать оптимизировано )))
@toscaantosca4541
@toscaantosca4541 4 ай бұрын
@@TimurShemsedinov спасибо за ответ!
@МаксимКоковин-и9к
@МаксимКоковин-и9к 4 жыл бұрын
Тимур, скажите, пожалуйста, связан ли как-нибудь инлайн-кэш с байт-кодом?
@RisDeep
@RisDeep 4 жыл бұрын
Интересно, а начиная с какого количества повторений вызывается оптимизация?
@TimurShemsedinov
@TimurShemsedinov 4 жыл бұрын
Однозначного ответа быть не может, есть разные движки js, у них разные версии, все они очень различаются. Еще виртуалка может находиться в разном состоянии по потреблению ресурсов, памяти и исполняемому рядом коду. Но в общем от нескольких прогонов до нескольких сотен прогонов.
@lex5115
@lex5115 3 жыл бұрын
@@TimurShemsedinov это только к жсу применимо или ко всем языкам, где динамик?
@Jaood_xD
@Jaood_xD 2 жыл бұрын
@@lex5115 это общая идея основных движков javascript'а, таких как: V8 (от Google), SpiderMonkey (от Mozilla), JavaScriptCore (от Apple) и Chakra (Microsoft).
@KostiaBazrov
@KostiaBazrov 5 жыл бұрын
олд скул
@portusdelphini
@portusdelphini 5 жыл бұрын
полиморфный дендромутантизм
Функциональное программирование на JavaScript
1:35:26
Epic Gaming Moments The Funniest Fails and Wins!
3:38:01
brewerc1979
Рет қаралды 10 М.
Players push long pins through a cardboard box attempting to pop the balloon!
00:31
Yay😃 Let's make a Cute Handbag for me 👜 #diycrafts #shorts
00:33
LearnToon - Learn & Play
Рет қаралды 117 МЛН
How Much Tape To Stop A Lamborghini?
00:15
MrBeast
Рет қаралды 253 МЛН
Экзопланеты - курс Сергея Попова / ПостНаука
2:42:07
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
Типизированные массивы в JavaScript
39:43
Timur Shemsedinov
Рет қаралды 9 М.
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1,4 МЛН