Cloudflare, Mozilla เปเบฅเบฐ Facebook เบžเบฑเบ”เบ—เบฐเบ™เบฒ BinaryAST เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เป‚เบซเบผเบ” JavaScript

เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบˆเบฒเบ Cloudflare, Mozilla, Facebook เปเบฅเบฐ Bloomberg เบชเบฐ เป€เปœเบต เบฎเบนเบšโ€‹เปเบšเบšโ€‹เปƒเบซเบกเปˆโ€‹ binaryAST เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบฅเบฐเบซเบฑเบ” JavaScript เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เป€เบงเบฑเบšเป„เบŠเบ—เปŒเปƒเบ™ browser. BinaryAST เบเป‰เบฒเบเป„เบฅเบเบฐเบเบฒเบ™เปเบเบเป„เบ›เบซเบฒเบเปˆเบฒเบเป€เบŠเบตเบšเป€เบงเบต เปเบฅเบฐเบชเบฐเปœเบญเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰ syntax abstract เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบฅเป‰เบง (AST). เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบš BinaryAST, เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป„เบ”เป‰เบ—เบฑเบ™เบ—เบต, เป‚เบ”เบเบ‚เป‰เบฒเบกเบเบฒเบ™เปเบเบเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ JavaScript.

เบชเบณ เบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš เบเบฐเบเบฝเบก เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบดเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡ Node.js เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ, เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ” AST เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ Rust. เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ”เป‰เบฒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš
BinaryAST เบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปƒเบ™ เบเบฒเบ™เบŠเบธเบกเบ™เบธเบกเปƒเบ™เบ•เบญเบ™เบเบฒเบ‡เบ„เบทเบ™ Firefox. เบ•เบปเบงเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™ BinaryAST เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เบ—เบฑเบ‡เปƒเบ™เบฅเบฐเบ”เบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ”เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ„เบดเบšเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบžเบฒเบเบ™เบญเบเบขเบนเปˆเบ”เป‰เบฒเบ™เบ‚เป‰เบฒเบ‡เบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบ•เบปเบงเปเบ—เบ™เบซเบผเบทเป€เบ™เบทเป‰เบญเบซเบฒ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡ BinaryAST เป‚เบ”เบเบ„เบฐเบ™เบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ‚เบถเป‰เบ™เปเบฅเป‰เบง ECMA TC39, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฎเบนเบšเปเบšเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบชเบฒเบกเบฒเบ”เบขเบนเปˆเบฎเปˆเบงเบกเบเบฑเบ™เบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆ, เป€เบŠเบฑเปˆเบ™: gzip เปเบฅเบฐ brotli.

Cloudflare, Mozilla เปเบฅเบฐ Facebook เบžเบฑเบ”เบ—เบฐเบ™เบฒ BinaryAST เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เป‚เบซเบผเบ” JavaScript

Cloudflare, Mozilla เปเบฅเบฐ Facebook เบžเบฑเบ”เบ—เบฐเบ™เบฒ BinaryAST เป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เป‚เบซเบผเบ” JavaScript

เป€เบกเบทเปˆเบญเบ›เบฐเบกเบงเบ™เบœเบปเบ™ JavaScript, เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเปƒเบ™เป„เบฅเบเบฐเบเบฒเบ™เป‚เบซเบผเบ”เปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”. เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเปˆเบฒเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡ JavaScript เบ—เบตเปˆเบ”เบฒเบงเป‚เบซเบฅเบ”เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเปเบกเปˆเบ™เบขเบนเปˆเปƒเบเป‰เบเบฑเบš 10 MB (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™: เบชเปเบฒเบฅเบฑเบš LinkedIn - 7.2 MB, Facebook - 7.1 MB, Gmail - 3.9 MB), เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เบญเบ‡ JavaScript เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปƒเบ™เบ”เป‰เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปเบกเปˆเบ™เบเบฑเบ‡เบŠเป‰เบฒเบฅเบปเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡ AST เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเปƒเบ™เบเบฒเบ™เบšเบดเบ™เบเป‰เบญเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ–เบทเบเป‚เบซเบฅเบ” (เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบšเบฅเบฑเบญเบเบฅเบฐเบซเบฑเบ”เป€เบžเบทเปˆเบญเบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป‚เบซเบผเบ”, เป€เบŠเบฑเปˆเบ™: เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ, เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบš. เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เบ‚เบฒเบ”โ€‹เป„เบ›โ€‹เป€เบžเบทเปˆเบญโ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เปƒเบ™โ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹)โ€‹.

เบžเบงเบเป€เบ‚เบปเบฒเบเปเบฒเบฅเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบกเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบšเบฒเบ‡เบชเปˆเบงเบ™เป‚เบ”เบเบเบฒเบ™เปเบˆเบเบขเบฒเบเบฅเบฐเบซเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ™เป‰เบญเบเบฅเบปเบ‡เปเบฅเบฐเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ bytecode เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš. เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบฅเบฐเบซเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เป€เบฅเบทเป‰เบญเบเป†, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ. WebAssembly เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚, เปเบ•เปˆเบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เปเบฅเบฐเบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบฅเบฐเบซเบฑเบ” JavaScript เบ—เบตเปˆเบกเบตเบขเบนเปˆ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡ bytecode เบ—เบตเปˆเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบฅเป‰เบงเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ scripts JavaScript, เปเบ•เปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปเบกเปˆเบ™เบ•เปเปˆเบ•เป‰เบฒเบ™เบกเบฑเบ™เป€เบžเบฒเบฐเบงเปˆเบฒ bytecode เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš, เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป‚เบ”เบเบเบปเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบˆเบฑเบ”เปเบšเปˆเบ‡เป€เบงเบฑเบš, เบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบเบตเบ”เบ‚เบทเป‰เบ™, เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡. เบ•เป‰เบญเบ‡เบกเบตเบฎเบนเบšเปเบšเบš bytecode เบ—เบปเปˆเบงเป„เบ›.

BinaryAST เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเป‰เบฒเบ‡ bytecode เปƒเบซเบกเปˆเบซเบผเบทเบ›เปˆเบฝเบ™เบžเบฒเบชเบฒ JavaScript. เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบš BinaryAST เปเบกเปˆเบ™เบ—เบฝเบšเบเบฑเบšเบฅเบฐเบซเบฑเบ” JavaScript เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบซเบ™เป‰เบญเบเบฅเบปเบ‡, เปเบฅเบฐเบ„เบงเบฒเบกเป„เบงเปƒเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เป„เบฅเบเบฐเบเบฒเบ™เปเบเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบฎเบนเบšเปเบšเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบเบฑเบš bytecode เบเป‰เบญเบ™เบงเปˆเบฒ BinaryAST เบ–เบทเบเป‚เบซเบฅเบ”, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเป€เบฅเบฑเบ”. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, parsing เปƒเบ™เบ”เป‰เบฒเบ™เป€เบŠเบตเบŸเป€เบงเบตเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบปเบเป€เบงเบฑเป‰เบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบˆเบฒเบเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡ BinaryAST เบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™, เป€เบŠเบดเปˆเบ‡, เป€เบกเบทเปˆเบญ parsing เปƒเบ™เบ”เป‰เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบชเบเป€เบงเบฅเบฒเบ—เบฑเบ‡ parsing เปเบฅเบฐเบชเบปเปˆเบ‡เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡ BinaryAST เบเบฑเบ‡เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบน JavaScript เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰เบ—เบตเปˆเบšเปเปˆเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบฐเบšเบฑเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เปเบ•เปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบกเบ”เบธเบ™เบ—เบฒเบ‡เบ„เบงเบฒเบกเบซเบกเบฒเบเปเบฅเบฐเบ›เบฐเบเบญเบšเบกเบตเบŠเบทเปˆเบ‚เบญเบ‡เบ•เบปเบงเปเบ›เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบ”เบฝเบงเบเบฑเบ™ (BinaryAST เบšเบฑเบ™เบ—เบถเบเบŠเบทเปˆ, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เปเบฒเปเบซเบ™เปˆเบ‡เปƒเบ™. เบฅเบฐเบซเบฑเบ”, เบฎเบนเบšเปเบšเบšเปเบฅเบฐเบ„เปเบฒเป€เบซเบฑเบ™). เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบซเบผเบฝเบ™เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡ vectors เบเบฒเบ™เป‚เบˆเบกเบ•เบตเปƒเบซเบกเปˆ, เปเบ•เปˆเบญเบตเบ‡เบ•เบฒเบกเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบžเบงเบเบกเบฑเบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบเบงเปˆเบฒเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเป„เบ”เป‰เบซเบผเบฒเบเบเปˆเบงเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป€เบŠเบฑเปˆเบ™เบเบฒเบ™เปเบˆเบเบขเบฒเบ bytecode.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบฅเบฐเบซเบฑเบ” facebook.com เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เปเบเบ JavaScript เปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ CPU 10-15% เปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบชเป‰เบฒเบ‡ bytecode เปเบฅเบฐเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš JIT. เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ SpiderMonkey, เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡ AST เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒ 500-800 ms, เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ BinaryAST เป„เบ”เป‰เบซเบผเบธเบ”เบฅเบปเบ‡เบ•เบปเบงเป€เบฅเบเบ™เบตเป‰เป‚เบ”เบ 70-90%.
เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบชเปเบฒเบฅเบฑเบš fireworks เป€เบงเบฑเบšเป„เบŠเบ•เปŒเบชเปˆเบงเบ™เปƒเบซเบเปˆ, เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰ BinaryAST, เป€เบงเบฅเบฒเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ JavaScript เบซเบผเบธเบ”เบฅเบปเบ‡ 3-10% เปƒเบ™เป‚เบซเบกเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐ 90-97% เป€เบกเบทเปˆเบญเป‚เบซเบกเบ”เบเบฒเบ™เบฅเบฐเป€เบงเบฑเป‰เบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.
เป€เบกเบทเปˆเบญเปเบฅเปˆเบ™เบŠเบธเบ”เบ—เบปเบ”เบชเบญเบš 1.2 MB JavaScript, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ BinaryAST เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบงเบฅเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบฑเปˆเบ‡เบˆเบฒเบ 338 เป€เบ›เบฑเบ™ 314 ms เปƒเบ™เบฅเบฐเบšเบปเบš desktop (Intel i7) เปเบฅเบฐเบˆเบฒเบ 2019 เบซเบฒ 1455 ms เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบกเบทเบ–เบท (HTC One M8).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™