{"id":33901,"date":"2019-10-31T21:55:19","date_gmt":"2019-10-31T18:55:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\/"},"modified":"2019-10-31T21:55:19","modified_gmt":"2019-10-31T18:55:19","slug":"cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","title":{"rendered":"Cloudflare, Mozilla ja Facebook arendavad BinaryAST-i JavaScripti laadimise kiirendamiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Cloudflare, Mozilla, Facebook ja Bloomberg'i insenerid <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/binary-ast\/\">ettepaneku<\/a><\/noindex> uus formaat <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tc39\/proposal-binary-ast\">BinaryAST<\/a><\/noindex>  JavaScript koodi kohaletoimetamise ja t\u00f6\u00f6tlemise kiirendamiseks veebisaitide avamisel. BinaryAST toob s\u00fcntaksiparanduse etapi serverisse ja tarnib juba koostatud abstraktse s\u00fcntaksipuu (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D0%BE%D0%B5_%D1%81%D0%B8%D0%BD%D1%82%D0%B0%D0%BA%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE\">AST<\/a><\/noindex>). BinaryASTi kasutamisel saab brauser kohe edasi liikuda kompileerimise etappi, m\u00f6\u00f6da minnes JavaScripti l\u00e4htekoodi parsimisest. <\/p>\n<p>Testimiseks <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/binast\/binjs-ref\">valmistatud<\/a><\/noindex> musterteostus, mis on saadaval MIT litsentsi alusel. Parsimiseks kasutatakse Node.js komponente ning AST optimeerimise ja koostamise kood on kirjutatud Rust keeles. Brauseritel on tugi<br \/>\nBinaryAST juba saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/www.mozilla.org\/en-US\/firefox\/channel\/desktop\/#nightly\">\u00f6\u00f6de kogumid<\/a><\/noindex> Firefoxis. BinaryASTi kodeerijat saab rakendada nii l\u00f5ppsaidi t\u00f6\u00f6riistade tasemel kui ka v\u00e4liste skriptide pakkimiseks, mis toimub vahep\u00e4ringus v\u00f5i sisu edastamise v\u00f5rgus. Praeguseks on alanud BinaryASTi standardimise protsess t\u00f6\u00f6grupis <noindex><a rel=\"nofollow\" href=\"https:\/\/tc39.github.io\/\">ECMA TC39<\/a><\/noindex>, p\u00e4rast mida saab formaat eksisteerida koos olemasolevate sisu tihendamise meetoditega nagu gzip ja brotli. <\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/content\/images\/2019\/05\/without-binAST.png\"><img decoding=\"async\" alt=\"Cloudflare, Mozilla ja Facebook arendavad BinaryAST-i JavaScripti laadimise kiirendamiseks\" src=\"\/wp-content\/uploads\/2019\/05\/fdb78c6b073295f42c6ed83e0ba73dd1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><br \/>\n<center><noindex><a rel=\"nofollow\" href=\"https:\/\/blog.cloudflare.com\/content\/images\/2019\/05\/With-BinAST.png\"><img decoding=\"async\" alt=\"Cloudflare, Mozilla ja Facebook arendavad BinaryAST-i JavaScripti laadimise kiirendamiseks\" src=\"\/wp-content\/uploads\/2019\/05\/457e5f127c81b8708cdc04ba0176a636.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>JavaScript'i t\u00f6\u00f6tlemisel kulub m\u00e4rkimisv\u00e4\u00e4rne aeg koode laadimise ja s\u00fcntaktilise anal\u00fc\u00fcsi faasile. Arvestades, et paljude populaarsete saitide laaditava JavaScript'i maht l\u00e4heneb 10 MB-le (n\u00e4iteks LinkedIn - 7,2 MB, Facebook - 7,1 MB, Gmail - 3,9 MB), toob JavaScript'i algne t\u00f6\u00f6tlemine olulise viivituse. Brauseripoolne anal\u00fc\u00fcsifaasi aeglustub samuti, kuna AST (Abstraktne S\u00fcntaktiline Puud) ei saa reaalajas t\u00e4ielikult \u00fcles ehitada koodi laadimise k\u00e4igus (brauser peab ootama koodiblokkide laadimise l\u00f5petamist, n\u00e4iteks funktsioonide l\u00f5ppu, et saada praeguste elementide anal\u00fc\u00fcsimiseks vajalikku teavet).<\/p>\n<p>Osaliselt \u00fcritatakse probleemi lahendada koodi levitamise kaudu minimeeritud ja tihendatud kujul, samuti brauseri genereeritud bytecode'i vahem\u00e4luga. Kaasaegsetel veebisaitidel uuendatakse koodi piisavalt sageli, mist\u00f5ttu vahem\u00e4lu lahendab probleemi vaid osaliselt. Lahendus v\u00f5iks olla WebAssembly, kuid see n\u00f5uab koodis selge t\u00fc\u00fcbi kasutamist ja sobib halvasti juba olemasoleva JavaScripti koodi t\u00f6\u00f6tlemise kiirendamiseks. <\/p>\n<p>Teine v\u00f5imalus on saata valmis kompileeritud baitkood JavaScripti skriptide asemel, kuid brauserimootorite arendajad on selle vastu, kuna kolmanda osapoole baitkoodi on raske valideerida, selle otse t\u00f6\u00f6tlemine v\u00f5ib p\u00f5hjustada veebipinda eraldumist, tekivad t\u00e4iendavad turvaohtud ja vajalik on universaalse baitkoodi formaadi arendamine.<\/p>\n<p>BinaryAST v\u00f5imaldab integreeruda olemasolevasse koodi arenduse ja edastamise mudelisse, luues uut baitkoodi v\u00f5i muutes JavaScripti keelt. BinaryAST formaadis andmete suurus on v\u00f5rreldav tihendatud minimeeritud JavaScripti koodiga, samas kui t\u00f6\u00f6tlemise kiirus suureneb m\u00e4rkimisv\u00e4\u00e4rselt, kuna v\u00e4listatakse source textide parsimise faas. Lisaks v\u00f5imaldab formaat kompileerida baitkoodi BinaryAST laadimise ajal, ootamata kogu andmemahu saamist. Serveripoolne parsimine v\u00f5imaldab v\u00e4listada edastatavast BinaryAST esitusest kasutamata funktsioone ja liigset koodi, mille parsimiseks brauseripoolsel tasandil kulub aega nii anal\u00fc\u00fcsimiseks kui ka liigse liikluse edastamiseks.<\/p>\n<p>BinaryASTi erip\u00e4ra on ka v\u00f5imalus taastada loetav JavaScript, mis ei kattu \u00fcks\u00fcheselt algse variandiga, kuid on semantiliselt ekvivalentne ja sisaldab samu muutuja ja funktsiooni nimesid (BinaryAST s\u00e4ilitab nimed, kuid ei salvesta koodi positsioonide, vormindamise ja kommentaaride teavet). Teise poole m\u00fcndi on uute r\u00fcnnakusuundade ilmumine, kuid arendajate arvates on need m\u00e4rkimisv\u00e4\u00e4rselt v\u00e4iksemad ja paremini juhitavad kui alternatiive rakendades, n\u00e4iteks baitkoodi levitamisel.<\/p>\n<p>Facebook.com koodi testid on n\u00e4idanud, et JavaScripti parsimiseks kulub 10-15% CPU ressursse ja parsimiseks kulub rohkem aega kui baitkoodi genereerimiseks ja JIT jaoks koodi algses loomises. SpiderMonkey mootoris v\u00f5tab t\u00e4is AST-i ehitamine aega 500-800 ms, ja BinaryASTi rakendamine v\u00f5imaldas seda n\u00e4itajat v\u00e4hendada 70-90%.<br \/>\n\u00dcldiselt v\u00e4heneb enamiku veebiraamistike JavaScripti parsimise aeg BinaryAST kasutamisel 3-10% optimeerimise re\u017eiimis ja 90-97% kasutamata funktsioonide ignoreerimise re\u017eiimis.<br \/>\nTestimise ajal JavaScripti komplekti, mille suurus on 1,2 MB, v\u00f5imaldas BinaryAST k\u00e4ivitamise algusaega lauaarvutis (Intel i7) kiirendada 338 ms-lt 314 ms-le ja mobiilseadmes (HTC One M8) 2019 ms-lt 1455 ms-le.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50701\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 JavaScript \u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u0430\u0439\u0442\u043e\u0432 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435. BinaryAST \u0432\u044b\u043d\u043e\u0441\u0438\u0442 \u0444\u0430\u0437\u0443 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u043e\u0435 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e (AST). \u041f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 BinaryAST \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0430\u0434\u0438\u044e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043c\u0438\u043d\u0443\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 JavaScript. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25564,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-33901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Cloudflare, Mozilla \u0438 Facebook \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JavaScript | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:55:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:55:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Cloudflare, Mozilla ja Facebook arendavad BinaryAST-i JavaScripti laadimise kiirendamiseks | ProHoster","description":"Cloudflare'i, Mozilla'i, Facebooki ja Bloomberg'i insenerid pakkusid v\u00e4lja uue vormingu","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Cloudflare, Mozilla \u0438 Facebook \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0442 BinaryAST \u0434\u043b\u044f \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 JavaScript | ProHoster","og:description":"\u0418\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 Cloudflare, Mozilla, Facebook \u0438 Bloomberg \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/cloudflare-mozilla-i-facebook-razvivayut-binaryast-dlya-uskoreniya-zagruzki-javascript","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:55:19+00:00","article:modified_time":"2019-10-31T18:55:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33901","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 17:09:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:31:22","updated":"2026-01-21 17:09:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/33901","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=33901"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/33901\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/25564"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=33901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=33901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=33901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}