БинариАСТ: пројекат Цлоудфлареа, Мозилле и Фацебоок-а за убрзање учитавања ЈаваСцрипт-а

бинарно-аст

Л инжењери из Цлоудфларе-а, Мозилле, Фацебоок-а и Блоомберга су почели да раде на нови пројекат под називом „БинариАСТ" да бисте убрзали испоруку и обраду ЈаваСцрипт кода приликом отварања веб локација у веб прегледачима.

БинариАСТ одводи фазу рашчлањивања на страну сервера и испоручује апстрактно стабло синтаксе (АСТ) које је већ генерисано. По пријему БинариАСТ, прегледач може одмах да пређе у фазу компилације, без проласка кроз рашчлањивање изворног кода ЈаваСцрипт.

Референтна имплементација припремљена под МИТ лиценцама припремљена је за тестирање. Ноде.јс компоненте се користе за анализу кода ради оптимизације и генерисања АСТ, написано је у Русту.

Кодирање у БинариАСТ-у може се користити и на нивоу алата крајње странице и за паковање скрипти спољних локација на проки страни или мрежи за испоруку садржаја.

Тренутно, поступак стандардизације БинариАСТ од стране радне групе ЕЦМА ТЦ39 већ је започео, након чега ће формат моћи да коегзистира са постојећим методама компресије испорученог садржаја, као што су гзип и бротли.

Толико јавасцрипт датотека утиче на учитавање веб страница

Знатно време током ЈаваСцрипт обраде траје у фази учитавања и рашчлањивања кода.

Узимајући у обзир чињеницу да се обим ЈаваСцрипт учитао на многим популарним веб локацијама је близу 10 МБ (на пример, за ЛинкедИн - 7.2 МБ, Фацебоок - 7.1 МБ, Гмаил - 3.9 МБ), процес ЈаваСцрипт почетни уводи значајно одлагање.

Фаза аналитике на страни прегледача такође се успорава због немогућности креирања АСТ-а у ходу док се код учитава (прегледач мора да сачека учитавање блокова кода, на пример крај функција, да би добио информације које недостају за рашчлањивање тренутних елемената).

Делимично покушавају да реше проблем дистрибуцијом кода у минимизираном и компримованом облику, као и кеширањем које генерише прегледач.

Бинарни-аст-1

Док се на модерним веб локацијама код ажурира прилично често, па кеширање само делимично решава проблем.

Решење би могло бити ВебАссембли, али захтева изричиту употребу писања у коду и није погодан за убрзавање обраде постојећег ЈаваСцрипт кода.

Друга опција је испорука готовог компајлираног кода уместо ЈаваСцрипт скрипти, али програмери механизма прегледача се противе томе, јер је код независних произвођача тешко верификовати, његова директна обрада може довести до одвајања од веба., Јављају се додатне безбедносне претње .

Решење је БинариАСТ

БинариАСТ омогућава интеграцију у тренутни развојни модел и испорука кода без стварања новог бајт-кода и без промене језика ЈаваСцрипт.

Величина података у БинариАСТ формату је упоредива са умањеним ЈаваСцрипт кодом и компримована и брзина обраде због искључивања фазе анализе извора се изузетно повећава.

Такође, формат омогућава компајлирање бајт-кода како се БинариАСТ учитава, без чекања да се заврше сви подаци.

Карактеристика БинариАСТ-а је такође могућност враћања читљивог ЈаваСцрипт-а, не један на један који се подудара са оригиналном верзијом, али је семантички еквивалентан и укључује иста имена променљивих и функција (БинариАСТ чува имена, али не чува информације о положају у коду, форматирању и коментарима).

Друга страна медаље је појава нових вектора за нападе, али према програмерима, они су знатно мањи и више се могу контролисати него уз употребу алтернатива, попут бајт дистрибуције кода.

Тестирање фацебоок кода показало је 10-15% ЦПУ ресурса троше се на рашчлањивање ЈаваСцрипт-а и треба им више времена да се рашчлане него да се генерише бајт код и почетно генерисање кода за ЈИТ.

Подршка БинариАСТ је сада доступан у Нигхтли верзијама Фирефока.

izvor: https://blog.cloudflare.com


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.