ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:02:24
Работа современного рантайма JavaScript:
  • Между исходным JavaScript-кодом и машинным кодом появилась промежуточная прослойка, называемая JIT (Just-In-Time), которая сначала преобразует код в байт-код, а затем интерпретирует и исполняет его
  • После выполнения этапа интерпретации байт-код оптимизируется компилятором, приводя отдельные части кода к высокоскоростному исполняемому виду
  • Появилась дополнительная виртуальная машина TurboFan, собирающая статистику исполнения и оптимизирующая байт-код для достижения максимальной скорости выполнения
00:13:38
Процесс выполнения JavaScript-кода и роль JIT-компиляторов:
  • Разработана новая технология исполнения JavaScript-кода через виртуальную машину Игнишн, преобразующую код в внутренний байт-код перед выполнением
  • Определены термины и функции, считающиеся «горячими», подлежащие оптимизации и ускорению выполнения
  • Для ускорения выполнения некоторых частей кода вводится механизм команды «отиниш», инициируемый виртуальной машиной Игнишн после сбора статистики о частоте выполнения функций
00:16:20
Принцип работы турбо-фана и оптимизация кода:
  • Разработчики заметили проблему производительности функции выполняемой 100000 раз в цикле («турбофан»)
  • Предложено оптимизировать данную функцию для повышения скорости выполнения
  • Упоминалась статистика работы байт-кода и необходимость оптимизации функций по типу входных и выходных значений
00:20:56
Важность понимания структуры рантайма JavaScript:
  • JavaScript-рантайм состоит из двух основных частей: Игнишн (Ignition), который компилирует JavaScript-код в байткод, и Турбофан (TurboFan), который преобразует байткод в машинный код
  • Игнишн отслеживает выполнение функций и определяет, являются ли они «горячими», то есть часто используемыми, после чего передает их на дальнейшую оптимизацию Турбофану
  • Разработчик планирует создать радиопередачу, посвященную JavaScript-тематике, где будут публиковаться полезные материалы и практические советы по улучшению производительности кода
0: Раз, раз, раз.
1: Добро пожаловать на радио джаваскрипт. Толчок джаваскрипт. Толчок. Из нас выходит не только контент. В рамках общеобразовательной программы разбираемся с мурой. Я.
2: Запускаю 2 радиостанции, посвящённые разным темам, 1 из которых, 1 из которых вы сейчас можете слышать.
3: Поскольку у меня нет времени записывать много видео и достаточно много полезного контента, я понял, что
4: Я могу использовать.
5: Совершенно иное своё время, отведённое для иных моих собственных природных потребностей, но при этом использовать его с пользой да, джаваскрипт толчок мы используем с пользой все на
6: Время. Сейчас я должен был бы записать вам видео, рассказывая о эффективных приёмах оптимизации массивов, массивов, но в течение дня мне пришло очень много вопросов в количестве полутора штук. 1 из
7: Которых дал мне основание думать, что вы не до конца понимаете, как работает современный Ранта в джаваскрипте. И так часто бывает, что 1 думает, что
8: Которых дал мне основание думать, что вы не до конца понимаете, как работает современный рантайм в джаваскрипте. И так часто бывает, что 1 думает, что он мне
9: Всех, а по факту оказывается.
10: А по факту оказывается, что он 1, как говорила моя бабушка, если тебе кажется, что вокруг тебя одни дураки, значит, ты центровой и на правах центрового хотел бы сейчас вот рассказать 1 очень базовую вещь, касающуюся в 8, которая
11: Который очень часто очень многие упускают из
12: Упускают из вида, разрабатывая свой код с, если не ошибаюсь, 13 года рантайм в джаваскрипте, по крайней мере, тот рантайм, который мы озаглавливаем, как в 8 имеет 2
13: 2 очень важных Пласта, которые следует обозначать всегда и главное для себя в своей башке его помнить это 1 Пласт, который называется игнишн, это jit just in time Тафи.
14: Которая берет наш джаваскрипт код, преобразовывает его к некоторому внутреннему представлению байт коду и его пытается каким-то образом выполнять, что значит преобразовывает его к байт коду. Это означает, что она приводит к какому-то своему внутреннему состоянию, кото
15: Команда за командой интерпретирует, понимает, что нужно сделать, и что-то с этим кодом делает, выполняет и старается это делать в рамках того, чего мы от него просили, совсем не обязательно, что он будет выполнять именно то, чего мы от него просили, но как минимум нужно отдать должное создателям.
16: 8 они максимально стараются угадывать наши потребности и наши желания в этом смысле.
17: Когда появился google chrome, или браузер chromium, или вообще сам по себе движок в 8, почему он так очень здорово выстрельнул и перевернул весь веб? Это произошло по причине того, что код javascript код, который никогда никто не думал, что
18: Этот код можно хоть сколько-нибудь всерьёз рассматривать в качестве программного продукта. Вдруг оказалось, что можно выполнять с достаточной производительностью, чтобы вызвать у людей удивление, как это может так быстро работать и
19: Просто так быстро работать, а даже заставить хипстеров на ночь глядя писать бичмарк, иногда даже доказывать, что этот код не просто может работать быстрее, чем, например, аналогичный код на си, а настолько быстро, что используя стандартные возможности.
20: Закоси быстрее, сделать код нельзя.
21: Это было золотое время существования браузера google chrome. К сожалению, в 2010, 2011 году было принято решение о несколько иной архитектуре. И в то время вот до этого ужасного решения, как работал наша
22: Скрипт с появлением браузера google chrome наш джаваскрипт разбирался, парсился, после этого превращался в машинный код той архитектуры, на которой выполнялся текущий райнтайм и этот код.
23: В дальнейшем, в дальнейшем дальше определённым образом выполнялся, оптимизировался и так далее, и так далее, и так далее. Он тогда действительно работал очень быстро, потому что специалисты, которые в то время работали над кранкшафт, а кранкшафт это то
24: Название той среды, которая брала наш код и преобразовывала к машинному варианту. Это были люди, которые некоторые из этих людей, которые балдели, сходили с ума по техническим оптимизациям, оптимизациям под определённой архитектуры. И когда в то время, в то время
25: Время говорили о том, что джаваскрипт настолько быстр, что может опережать машинные языки это была абсолютнейшая правда, и всегда можно было привести примеры, когда человек, например, использующий возможности низкого.
26: Уровневых компилируемых Языков типа языка си не могли в принципе написать код, который бы работал быстрее в определённых случаях, чем аналогичный код, который был написан на языке джаваскрипта, это абсолютнейшая правда, по какой
27: Причине это правда по той причине, что, например, когда вы на языке java script тогда писали 16 / 2, то этот код преобразовывался к состоянию
28: 16 сдвинуть вправо на 1 beat, что является самой максимальной скоростной операцией, которую можно было только представить в языке си. Безусловно, это тоже есть я просто привожу пример тех низкоуровневых технических оптимизаций, которые тогда применялись в коде, к сожалению, в опреде.
29: Определённый момент времени та команда разработчиков, столкнувшись с непреодолимыми, как им казалось, проблемами языка для себя начинали принимать решение о том, что они либо должны писать новый язык, совершенно новый.
30: Язык и что они на базе языка джаваскрипта уже не могут реализовать то, что они хотят, либо нужно радикально менять некоторые вещи в языке и, к сожалению, лично для меня, к большому сожалению, лично для меня, потому что я сейчас придерживаюс
31: То есть как тогда, так и сейчас придерживаюсь немножко иной точки зрения они все ушли писать новый язык, этот язык называется rust. Google пообещал тогда всем этим людям, что rust зайдёт как минимум как альтернативная платформа в браузере, выполняющаяся.
32: На тех же самых правах гуугл благополучно всех провернул, как пропеллер, и в тот момент, когда раз был полностью готов к тому, чтобы интегрироваться в браузер. А я подчеркну, это был не просто альтернативный язык, это был язык в то время, который обладал кросс.
33: Компиляции из текущего джаваскрипт кода в rest и наоборот. То есть мы могли взять любую свою собственную библиотеку, провести её через транскомпилированные. Выполнялся на уровне раст кода Ровно точно так же, как он бы выполнялся
34: Script time что там случилось у людей в мозгах гугла, мы не знаем, но мы точно знаем, что, во первых, раст не появился как язык, который заменил джаваскрипт, во вторых, он не просто не появился как замена.
35: Он не появился как альтернатива в браузере языку javascript, когда все инструменты для этого всего были готовы, я подчёркиваю, и этим языком занимались в основной своей массе те люди, которые писали тот самый быстрый рантайм, который был до 13 года с 13.
36: Года. Рантаймом начинают заниматься очень забавные люди, которых я знаю лично не знаю, знаю онлайн и знаю, что у них очень своеобразный взгляд на производительность, своеобразный взгляд на программистов, которые работают с джаваскриптом. И вообще своеобразный взгляд.
37: На то, каким образом это должно работать перед ними были поставлены своеобразные задачи, которые они решали своими же своеобразными способами 1 из этих своеобразных способов заключался в том, что они вклинили между кранкшафт и нашим джаваскриптом.
38: Кодом тот самый джи джастин тайм компилейшн, который был назван игнишн, то есть была добавлена виртуальная машина, которую они назвали регистровой виртуальной машиной, которая должна была интерпретировать
39: Наш джаваскрипт код сначала в байт код, который интерпретирует и выполняет игнишн, следом за которым в силу каких-то определённых обстоятельств в работу вступает оптимизирующий компилятор, который приводит некоторые части нашего кода к высо.
40: Скоростному исполняемому коду и так далее, и так далее, и так далее.
41: Забегая немножко вперёд, я очень хочу отдельно поговорить на эту тему, поговорить, поскольку у меня это особая дырка в моём кишечнике, подгоревшая когда-то, с какого фига вообще эти люди занялись разработкой вещей?
42: С которыми они вообще не имели никакого опыта. Более того, это люди, которые не просто имели, не имели серьёзного опыта при программировании виртуальных машин. Эти люди не хотели иметь никакой опыт, они думали, что они знают сами, как делать правильно. Ну, впрочем, как и все мы каждый раз, когда, м,
43: Берём за какую-то задачу всем нам кажется, что мы можем вдруг, да, взять какую-либо сложную проблему.
44: Да, увидел комментарий. Взять какую-либо сложную проблему над ней, сами посидеть, подумать и выдать якобы гениальное решение. Ребят, забудьте. Хотя вы знаете это, это, я думаю, забудьте это, что я тупой совсем.
45: Своим опытом, проходом, да, я понимаю, что я тупица, я не могу. Возможно, вы со своими молодыми быстрыми мозгами реально с этими задачами можете справиться Ровно точно. Также думали эти люди. Иными словами, вернёмся к сути, они вклинили
46: Между кранкшафт и нашим javascript кодом игнишн это была не была и существующая сейчас стековая виртуальная машина джит, которая преобразовывает сначала.
47: Java script код k ввиду байт кода, то есть некоторых базовых каких-то команд на каком-то своём внутреннем языке, которые интерпретирует вот эта та самая регистровая виртуальная машина и следом за ним запустили.
48: Ещё 1 виртуальную машину, которая называется turbo фан. Теперь это машина турбо фан, которая занимается тем, что в определённых условиях, после сбора определённого рода статистики она предпринимает шаги по оптимизации нашего байт кода, который
49: Генерировал игнишн до состояния машинного кода, который может выполняться максимально быстро. Помните, да, до 13 года или там до 12, я не помню сейчас цифр. Посмотрите, когда появился игнишн, это сейчас не важно. Суть заключается в том, что до этого момента у нас была прямая
50: Компиляция из нашего джава скрипт кода сразу в машинный код под ту архитектуру, где работает наш runtime, а сейчас у нас есть между нашим рантаймом, между машинным кодом и нашим кодом прослойка которая называется игнишн делает байткод я.
51: Понимаю некоторые задачи, которые они пытались разрешать, например, самая простая и самая явная финансовая задача заключается в том, что когда у нас есть описанный базовый, простой язык,
52: Да, да, да, да, и тебе доброго утра, тёзка мой Макс.
53: Просто мой текс тёзка. Так вот, это можно понять. Они придумали свой базовый, какой-то примитивный язык, благодаря которому они очень сильно упростили кодовую базу для портирования своего рантайма с на
54: Совершенно разные платформы. И, вероятно, это очень правильное решение, потому что, как мы знаем сейчас в нашем 21 году, и вы, и я, что сейчас джаваскрипт торчит своими ногами, когтями и задницей из любого утюга даже
55: Вот на crew dragon якобы у нас летал интерфейс, написанный на джаваскрипте безусловно, раз вы захватили мир, значит, ваше решение было правильным, но, ребят, дайте мне, пожалуйста, ответ на вопрос а с какого, блин, художника?
56: Вы, люди, которые не очень разбираетесь в том, как правильно писать виртуальные машины, решили вместо того, чтобы ассимилировать и понять опыт других людей.
57: Которые делали это много раз написать свою собственную
58: У меня ответа на этот вопрос нет. Точнее, у меня ответ на этот вопрос есть. Нет ответа такого ответа на этот вопрос, который бы я мог озвучить в силу своего словарного запаса в эфире. Бог с ним и тоже это вынесем за
59: Скобки. Главное, что теперь нам нужно понимать, это тот факт, что работа нашего джава скрипт кода теперь разбивается на 2 очень важные фазы. Фаза, номер, 1 интерпретация нашего кода при помощи
60: Виртуальная машина, которая называется игнишн, она преобразовывает наш джаваскрипт код к некоторому внутреннему байт коду, который и выполняет эта виртуальная машина. Это очень важно помнить почему? Потому что большая часть кода
61: Которым мы работаем. Это и есть то самое выполнение этого самого кода. Тем самым игнишн не так, как было раньше, когда любой наш код интерпретировался в сторо, компилировался в машинный код и выполнялся максимально
62: Быстро. А сейчас у нас есть промежуточная фаза, которая выполняет их нишем, собирая её в байт код. Возможно, они были правы. Пусть это будет так. Следом за этой фазой идёт следующая фаза, когда некоторые части нашего кода подчёркиваю,
63: Это нужно запомнить и помнить, и знать некоторые части нашего кода, не весь код, не все на свете, не я, в частности, а некоторые части нашего кода, которого они считают горячими. Это есть такой
64: Профессиональный термин, можете его запомнить. Функция является горячей. Они отдают в сторону турбо фан чувак, смотри, горячая штучка, займись ей.
65: Ну, в общем, как и у мужчин, мы ходим там по кругу туды, сюды, туды, сюды. Да, я забыл, дисклеймер, я очень большой любитель своего собственного юмора, который является плоским и не смешной даже для меня самого. Поэтому по этому поводу я крайне
66: Рекомендую ничего писать в комментариях, потому что, ну, потому что, потому что кончается наука. Так вот.
67: При выполнении определённых условий игнишн тот, который собрал наш байт код, он берет этот наш байт код и говорит, товарищ турбо фан зырь классная горячая штучка. Сделай с них что-нибудь классное. То есть вот когда раньше у нас было, он брал и весь наш код делал каким-то
68: Классно, то теперь нужна команда отиниш.
69: Когда происходит эта команда, эта команда от игнишн происходит тогда, когда он собирает определённую статистику относительно работы нашего кода. Он, например, смотрит, что есть некоторая функция. У нас функция, которая выполняется достаточно часто. Ну, например,
70: По каким-то непонятным для нас причинам мы засунули эту функцию в цикл, который выполняется 100000, и он говорит, слышь, турбо фанчик турбо, дядя, как я его люблю называть, на том шпеге, котором я вам сейчас стримлю, а этот стрим можно было
71: Раз.
72: По каким-то непонятным для нас причинам мы засунули эту функцию в цикл, который выполняется 100000 раз. И он говорит слышь, турбо фанчик турбо, дядя, как я его люблю называть, на том шпеге, котором я вам сейчас стримлю, а этот стрим можно было
73: Было бы назвать альтернативным образом мы стримим шпиги, потому что мы крутые и стримим шпиги в высоком качестве. Так вот.
74: Потерял мысль.
75: Блин, там, значит, функция выполняется 100000 раз в цикле, да, он отдаёт турбофон и сообщает, посмотри, обрати внимание, пожалуйста, на эту функцию. Можно ли сделать её работающей достаточно быстро и при этом в рамках
76: Работы наш игнишн. Кроме того, что сделал нам байткод, кроме того, что этот байткод у нас каким-то образом, он даже пытается базовым образом оптимизировать, он начинает собирать статистику относительно работы нашего байткода. Как часто вы
77: Выполняется та или иная функция, какие заходят типы в функцию, какие выходят типы из функции, когда в определённый момент времени вдруг решает все-таки, да, блин, тяжко выполнять, тяжко мне работать с этой долбаной функцией турбо фан, давай
78: Чувак, попытайся её оптимизировать, вот тогда и вступает в работу турбофон на том прекрасном шпеге, который сейчас транслируется слева. Вы видите логотип в 8 это логотип того рантайма, который в большинстве случаев работает с нашим javascript кодом, а справа вы видите,
79: Логотип турбо фан это логотип следующей очень серьёзной прослойки внутри нашего рантайма, который преобразовывает тот байт код, который ему отдаёт в 8 в сторону его машинного кода, на, как ему кажется, наиболее максимально быстрый
80: Его интерпретации, которая может только выполняться и нужно отдать должное в определённых случаях эта интерпретация действительно является таковой, быстрее которой собрать нельзя какой самый простой пример такой интерпретации?
81: Я очень люблю этот пример по причине того, что я этот пример очень люблю приводить как факт того, что мы все умрём в javascript, есть, точнее, нет. В javascript нет какого-либо известного оператора.
82: Который бы позволял программисту определять чётность числа. И если вы сделаете поиск по типичным библиотекам, которые присутствуют на мд, на как это называется мпн, как там, какие там сейчас библиотеки есть мпн, кажется, то вы
83: Обнаружите, что есть очень популярнейший популярнейшая библиотека, которая предоставляет команду для определения чётности числа она имеет больше 100000 загрузок. Просто подумайте 100000 загрузок в день или в неделю в день.
84: В неделю, да даже если в неделю это сумасшедшее число, если бы там рекламу показывать на эти каждые 100000, сколько ж можно было бы денег заработать. Так вот, это библиотека, которая позволяет 1 командой определить чётность числа.
85: Дело все в том, что любой человек, который занимался программированием, не джаваскриптер, джаваскриптер, может стать программистом, у него есть для этого все возможности. А вот те люди, которые действительно думали, что они станут программистами, они прекрасно знают, что
86: Для того чтобы определять чётность числа, нужно всего лишь навсего сделать 1 простую вещь это проверить. Младший бит того числа, с которым ты имеешь дело. Наши же товарищи, джаваскриптеры, что делают правильно, они делают деление на 2.
87: Проверяют остаток отделения. Является ли этот остаток отделения нулевым, предполагая, что раз у нас остаток отделения 0, то, значит, у нас чётное число. Справедливо, это справедливо. Безусловно, только к программированию это не имеет никакого значения отношения. Так вот, возвраща
88: К той самой замечательной библиотеке, о которой я говорил, которая имеет 100000 скачиваний в неделю. Все, что делает эта библиотека, это делает то самое, она делает вычисление остатка отделения на 2, после чего в случае, если это цифра.
89: 0. Она благополучно сообщает тру или фолс, тем самым давая понять, что число чётное или нечётное, восхитительно, блин, офигительно я начал javascript сообщество делить на 3 типа на людей, которые скачивают эту.
90: Библиотеку, а это люди с особым складом мыслительного процесса на людей, которые сами додумываются делать деление на 2 и проверять остаток отделения, и на программистов, которые знают, что нужно всего
91: Лишь навсего проверить младший бит этого числа. Так вот, возвращаясь к тому, что делает турбо фан турбо фан, когда видит работу замечательных программистов из 2 и 3, из 2 и 3 сообщества, он вот эту всю кашу, которую они там
92: Пишут про деление, про остатки, сокращает, выбрасывает и вместо в неё вставляет именно то, что пишут люди из 1 группы, то есть проверку младшего бита установки младшего бита этого числа установлен бит число чётное не установ.
93: Число нечётное, нечётное подводя итог всему сказанному наш runtime в java скрипте состоит из 2 важных вещей сейчас 1 часть, которая называется игнишн, занимается тем, что берет наша.
94: Скрипт код интерпретирует его, приводит к некоторому байт коду внутреннему, простому, который начинает крутиться внутри нашего рантайма, выполняться, определённым образом выполнять и работать с нашей логикой, как только выполняются определённые условия.
95: Которая в специфической субкультуре людей, которые считают себя программистами, называется функция стала горячей. Рантайм игнишн передаёт кусочек этого байт кода. Дальше в следующую плоскость эта плоскость называется турбоа.
96: Следующий большой большущий кусок, который, взяв на себя этот байт код, пытается его некоторым образом привести к машинному коду, к максимальной его быстрой составляющей, которая может выполняться с
97: Со скоростью, как ракета.
98: Вот именно таким образом работает современнейший Ранта. И когда я, рассказывая о всех своих, во всех своих предыдущих видео, касаюсь всех этих плоскостей, особенно что самое важное, когда я касаюсь вещей, которые связаны с тем,
99: Почему мы должны понимать как работает наш runtime это те самые вещи, очень важные вещи, не понимая которые мы пишем, код, который ни а не выполняется достаточно быстро в случае эгни.
100: И b. Этот код, не даже будучи очень горячим, передавая его дальше в турбофабия, становится тем кодом, который можно было бы преобразовать его к его максимально скоростной составляющей, которую можно было бы выполнить с максималь.
101: Доступной скоростью важно усвоить. Мы должны знать и понимать современную структуру нашего рантайма. В 8 рантаймов. Вообще много есть там, например, спа.
102: Manki это от мозиллы рантайм есть в 8, но почему я всегда настаиваю на в 8 по 2 причинам в 8 это самый быстрый на текущий момент рантайм и spider monkey его не догонит, даже если на поносы зайдёт в 8 является рантайм.
103: Который занимает больше 80% рынка во многих задачах, в том числе и в задачах встраивания устройств и так далее, и так далее, и так далее. И в силу этого это означает, что понимая принципы, которые в него закладывают разработчики этого рантайма,
104: Мы можем писать тот самый.
105: Где ссылка на радио, я скажу сейчас мы можем писать тот самый код, который бы работал в нашем случае с максимальной эффективностью, причём не просто с максимальной эффективностью в случае оптимизации его макси.
106: По самой самым последним уровнем абстракции турбо фаном, а в принципе, потому что даже на уровне кранкшафт, тьфу господи, кранкшафт игнишн товарищи разработчики додумались интегрировать в него некоторые некоторый набор.
107: Оптимизации, которая приводит к тому, что этот код может выполняться быстрее, итого помним в своей башке наш runtime в браузере в ноде, который называется 8, состоит из 2 вещей игнишн, который компилирует наш джава.
108: Код в байт код, с которым он работает, и следом за ним идёт турбо фан турбо фан. Это некоторая следующая прослойка, которая берет байт код, который ему отдаёт игнишн, считая его по каким-то причинам, необходимым для
109: И turbo фан берет этот код и пытается преобразовывать его, превращать его в машинный вид конкретной, в тот вид, который может конкретно исполняться в процессоре той процессором той архитектуры, где у вас сейчас выполняется
110: Это очень важно помнить всегда, когда мы просматриваем все те видео, которые я записываю, потому что я всегда в этих видео показываю 2 разных вещи и объясняю, в чем разница и почему нужно делать так или иначе. Вот
111: Код, а вот код оптимизированный, вот оптимизированный код, а вот байт код 1 из последних вещей, где на это стоит обратить внимание, это вещь, связанная с Варлет и const, когда специально для демонстрации того, что происходит, я, я отключаю.
112: Работу turbo фан там прямо в видео я так и сообщаю. Вот смотрите, вот эта команда, где я специальным образом отключаю работу оптимизирующего компилятора для того, чтобы продемонстрировать разницу в производительности работы с нашими идентификаторами в то время, когда их интерпретируют
113: Ignition, а это большинство случаев, с которыми работаете вы когда сталкиваетесь, потому что ignition собирает статистику и как только он вдруг согласно своей статистике, принимает решение, что эта функция горячая, только тогда он её туда отдаёт. Я вам сейчас могу сказать простую
114: Цифру её не стоит запоминать. Эта цифра всего лишь только для того, чтобы иметь в голове представление, как это происходит. Например, в текущем состоянии вы должны проитерировать свою функцию около полутора тысяч раз приблизительно.
115: Я говорю, специально не запоминайте это приблизительно полутора тысяч раз, прежде чем игнишн примет решение, что ваша функция горячая и её нужно отдать на оптимизацию в турбопанк. Подчёркиваю, представьте, 1500 итераций должно пройти, то есть до этого момента полторы
116: 1000 раз у нас выполняется некий наш код, который интерпретирован в байт код определённым образом и который оказывает влияние на основную нашу производительность. В общем то, суть в том по поводу, где ссылка на радио. Если бы я знал,
117: Умел и понимал. А самое главное у меня было время на то, чтобы понять, как это делать, то я бы обязательно ответил на этот вопрос и смог бы сделать настоящее радио и туда бы запустить все эти вещи, если у кого-то есть желание потратить своё время.
118: Получить за это ни копейки денег, а я это вам в обязательном случае гарантирую. А самое главное, не просто не получить за это ни копейки денег, а ещё и получить 10000 раз от людей, которые комментируют всю вашу работу по башке.
119: То напишите мне, я вам дам все права. Сделайте радио, а контент я вам и так обеспечу, как говорила моя бабушка. Скажите спасибо, что я хотя бы пытаюсь включить правильно микрофон. Надеюсь, что в этот раз он не сильно бубнит, и хотя бы разборчиво он там
120: Звучит этот микрофон в этом радио я предполагаю, поскольку видео записывать становится для меня сложно, а перерывы мне делать важно. Я думаю, я бы хотел вот запустить такое по 2 направлениям такое вот радио, где бы по кругу крутились эти все записи.
121: И в то время, когда я предпринимаю попытку отдохнуть, это там 15, 20 минут, у меня стоит отдельно компьютер, где я могу нажать кнопку включить и вот так вот побубнить вам в микрофон какую-то вещь, которая, возможно, вам принесёт пользу, по крайней мере, в то время, когда
122: Да, смотреть куда-либо нет никакого желания, а послушать какой-либо бубнеш, который может принести пользу. Да, вот такие вот пироги засим. Я сейчас заканчиваю свой 5 эпизод нашего
123: Замечательнейшего радио java script толчок помните, что джава скрипт, толчок это радио, где из нас выходит не только контент и мы.
124: Нас остановить не может даже зов природы, потому держимся, держим кулаки, и в следующий раз я обещаю записать кусочек, где приведу практические примеры того, каким образом, работая неправильно с массивами или, напротив, правильно.
125: С массивами мы можем получить разность в производительности нашего кода до 100 раз, а бывает даже и в 1000 раз. Вот такие вот штуки. Надеюсь, это было не слишком скучно. И я о, я уложился в 30 минут. Все, всем хорошего.