G
enby!

Производительность V8 объектов в примерах

Осваиваем базовые приемы отслеживания проблем с производительностью нашего кода. Разбираемся на примерах, какой JS помогает интерпретатору генерировать производительный код, а какой заставляет его начинать всю работу сначала. Минимум слов - максимум примеров. Таймкоды: 00:00:03 Введение и настройка 00:01:01 Обзор предыдущих трансляций 00:02:39 Внутреннее представление объектов 00:04:46 Оптимизация доступа к свойствам 00:07:51 Важность неизменности формы объекта 00:10:34 Примеры и оптимизация кода 00:13:12 Практическое применение знаний 00:14:27 Переход к коду и примеры 00:18:06 Оптимизация кода в JavaScript 00:19:02 Влияние частых вызовов 00:20:38 Оптимизация функции getAge 00:24:46 Влияние изменения объекта 00:28:52 Использование литерала объекта 00:30:40 Оптимизация функций 00:33:12 Влияние порядка создания объектов 00:36:41 Прототипы и оптимизация 00:41:10 Порядок создания объектов 00:46:01 Заключение 00:47:37 Оптимизация и де-оптимизация 00:50:03 Влияние конструкторов и свойств 00:55:55 Резюме 01:00:43 Дополнительные тесты 01:03:52 Алгоритм Map 01:06:06 Примеры использования Map 01:10:26 Прототипы и деоптимизация 01:14:12 Оптимизация кода 01:15:31 Универсальные правила 01:19:53 Заключение 01:20:32 Оптимизация и скрытые классы 01:22:24 Агрегированные скрытые классы 01:23:46 Преобразование объектов 01:25:42 Вопросы и ответы 01:27:18 Охранные функции 01:30:43 Заключение 01:32:22 Мономорфизм и полиморфизм 01:35:55 Влияние изменений 01:37:36 Влияние типа поля 01:43:23 Использование V8 и кэширование 01:46:20 Литература и опыт 01:47:54 Хранение объектов 01:48:46 Оптимизация в JavaScript 01:50:05 Доступ к свойствам 01:51:09 Ведение стримов 01:54:03 Хранение данных в массивах 01:55:50 Спецификация массивов 01:57:44 Проблемы производительности 01:59:15 Развитие JavaScript 02:00:09 Сравнение производительности 02:01:13 Анонс следующего стрима 02:03:33 Вызов функции 02:05:17 Оптимизация вызовов 02:07:02 Заключение AsForJs новости в Telegram: https://t.me/AsForJavaScript
AsForJs Talks в Telegram: https://t.me/AsForJsTalks
Поддержать маленького бородатого JavaScript-ра Карта Приват (Bobrov Maksym): 5168745021397333 USDT Tron (TRC20): TKoZu59WHiX6L6qvwYTYTsZJerDrnAHBTx USDT etherium (erc20): 0x75fb8a62dfcf453b2e73f1ef1c407d46f918fffa TON: UQAGXvuhxg3qU0eFgOxtdDlKXqdp1zPq6yCRSRbRYQClxOzH bitcoin:bc1q74aru82v4d3alay7p53jdwkmxe4a5gz7fmvfm2?message=AsForJS&time=1686349743 PayPal: demimurych@protonmail.com   / demimurych   Boosty: https://boosty.to/asforjs
⎡~perf ~9 ~v8 ~object ~examples⎦

Смотрите также