Ndị injinia sitere na Cloudflare, Mozilla, Facebook na Bloomberg
Maka ule
BinaryAST adịlarị na
Mgbe ị na-ahazi Javascript, a na-etinye oge dị ukwuu na ntinye na nhazi nke koodu ahụ. N'iburu n'uche na olu JavaScript ebudatara n'ọtụtụ saịtị ndị a ma ama dị nso 10 MB (dịka ọmụmaatụ, maka LinkedIn - 7.2 MB, Facebook - 7.1 MB, Gmail - 3.9 MB), nhazi mbụ nke Javascript na-ewebata nnukwu igbu oge. A na-ebelatakwa ogbo a na-atụgharị n'akụkụ ihe nchọgharị n'ihi enweghị ike ịrụ ọrụ AST n'ụzọ zuru oke n'ihi na etinyere koodu ahụ (ihe nchọgharị ahụ ga-echere koodu blocks iji mezue nbudata, dị ka njedebe nke ọrụ, iji nweta. ozi na-efu iji kpachapụ ihe ndị dị ugbu a).
Ha na-agbalị idozi nsogbu ahụ n'akụkụ ụfọdụ site na ikesa koodu ahụ n'ụdị dị ntakịrị na nke abịakọrọ, yana site na caching bytecode nke ihe nchọgharị ahụ mepụtara. Na saịtị ọgbara ọhụrụ, a na-emelite koodu ahụ ọtụtụ oge, yabụ caching naanị akụkụ ụfọdụ na-edozi nsogbu ahụ. WebAssembly nwere ike ịbụ ihe ngwọta, mana ọ na-achọ ka ịpịnye koodu ahụ nke ọma ma ọ dabara nke ọma maka ịme ngwa ngwa nhazi koodu Javascript dị ugbu a.
Nhọrọ ọzọ bụ ịnyefe bytecode chịkọtara nke ọma kama ịde ederede Javascript, mana ndị na-emepụta ihe nchọgharị na-emegide ya n'ihi na bytecode nke atọ siri ike ịchọpụta, nhazi ya ozugbo nwere ike ibute stratification Weebụ, ihe egwu nchekwa ọzọ bilitere, yana mmepe nke a chọrọ usoro bytecode zuru ụwa ọnụ.
BinaryAST na-enye gị ohere ịbanye n'ime koodu mmepe na ụdị nnyefe gị ugbu a na-emepụtaghị bytecode ọhụrụ ma ọ bụ gbanwee asụsụ Javascript. Ogo data dị n'ụdị BinaryAST dị ka koodu Javascript agbakwunyere agbakwunyere, yana ọsọ nhazi site na iwepu usoro ntụgharị ederede isi mmalite na-abawanye nke ọma. Na mgbakwunye, usoro ahụ na-enye ohere ịchịkọta bytecode ka a na-ebugharị BinaryAST, na-echeghị ka data niile mezue. Tụkwasị na nke ahụ, ịkọwapụta n'akụkụ ihe nkesa na-enye gị ohere ịwepụ ọrụ ndị a na-ejighị n'aka na koodu na-adịghị mkpa site na nnochite anya BinaryAST, nke, mgbe ị na-atụgharị n'akụkụ ihe nchọgharị ahụ, na-egbu oge ma na-ebufe ma na-ebufe okporo ụzọ na-adịghị mkpa.
Otu njirimara nke BinaryAST bụkwa ikike iweghachi Javascript a na-agụ nke na-abụghị kpọmkwem otu ụdị nke mbụ, ma ọ bụ ihe nhata ma na-agụnye otu aha nke mgbanwe na ọrụ (BinaryAST na-echekwa aha, ma ọ dịghị echekwa ozi gbasara ọnọdụ na . koodu, nhazi na nkọwa). N'akụkụ nke ọzọ nke mkpụrụ ego bụ mpụta nke ọhụrụ ọgụ vectors, ma dị ka ndị mmepe si kwuo, ha dị nnọọ nta ma na-achịkwa karịa mgbe eji ụzọ ọzọ, dị ka bytecode nkesa.
Nnwale nke koodu facebook.com gosiri na ịkọwapụta Javascript na-eri 10-15% nke akụrụngwa CPU na ntughari na-ewe oge karịa ịmepụta bytecode na ọgbọ koodu mbụ maka JIT. N'ime igwe SpiderMonkey, oge iji wuo AST kpamkpam na-ewe 500-800 ms, na ojiji nke BinaryAST belatara ọnụ ọgụgụ a site na 70-90%.
N'ozuzu, maka ọtụtụ ọkụ ọkụ weebụ, mgbe ị na-eji BinaryAST, oge nchịkọta Javascript na-ebelata site na 3-10% na ọnọdụ na-enweghị njikarịcha yana site na 90-97% mgbe usoro nke ileghara ọrụ ndị a na-ejighị mee ihe anya.
Mgbe ị na-agba ọsọ 1.2 MB Javascript ule suite, iji BinaryAST kwere ka oge mmalite si na 338 ruo 314 ms na sistemụ desktọpụ (Intel i7) yana site na 2019 ruo 1455 ms na ngwaọrụ mkpanaka (HTC One M8).
isi: opennet.ru