Cloudflare, Mozilla рд░ Facebook рд▓реЗ JavaScript рд▓реЛрдбрд┐рдЩрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди BinaryAST рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ

рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░, рдореЛрдЬрд┐рд▓рд╛, рдлреЗрд╕рдмреБрдХ рд░ рдмреНрд▓реВрдордмрд░реНрдЧрдХрд╛ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдирдпрд╛рдБ рдврд╛рдБрдЪрд╛ рдмрд╛рдЗрдирд░реАрд╕реНрдЯ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рд╕рд╛рдЗрдЯрд╣рд░реВ рдЦреЛрд▓реНрджрд╛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдбрдХреЛ рдбреЗрд▓рд┐рднрд░реА рд░ рдкреНрд░рд╢реЛрдзрдирд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдиред BinaryAST рд▓реЗ рдкрд╛рд░реНрд╕рд┐рдЩ рдЪрд░рдгрд▓рд╛рдИ рд╕рд░реНрднрд░ рд╕рд╛рдЗрдбрдорд╛ рд╕рд╛рд░реНрдЫ рд░ рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрддреНрдкрдиреНрди рдЧрд░рд┐рдПрдХреЛ рдПрдмреНрд╕реНрдЯреНрд░реНрдпрд╛рдХреНрдЯ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд░реВрдЦ (AST)ред BinaryAST рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐, рдмреНрд░рд╛рдЙрдЬрд░рд▓реЗ рддреБрд░реБрдиреНрддреИ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд╛рд░реНрд╕ рдЧрд░реНрджреИ, рд╕рдВрдХрд▓рди рдЪрд░рдгрдорд╛ рдЬрд╛рди рд╕рдХреНрдЫред

рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рд╕рдиреНрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рдЖрдкреВрд░реНрддрд┐ред Node.js рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдкрд╛рд░реНрд╕рд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рд░ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рд░ AST рдЬреЗрдиреЗрд░реЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдб Rust рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд╣реБрдиреНрдЫред рдмреНрд░рд╛рдЙрдЬрд░ рд╕рд╛рдЗрдб рд╕рдорд░реНрдерди
BinaryAST рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрдкрд▓рдмреНрдз рдЫ рд░рд╛рддреА рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрдЫ рдлрд╛рдпрд░рдлрдХреНрд╕ред BinaryAST рдорд╛ рдПрдиреНрдХреЛрдбрд░ рдЕрдиреНрддрд┐рдо рд╕рд╛рдЗрдЯ рдЯреВрд▓рд┐рдЩ рд╕реНрддрд░ рд░ рдкреНрд░реЛрдХреНрд╕реА рд╡рд╛ рд╕рд╛рдордЧреНрд░реА рдбреЗрд▓рд┐рднрд░реА рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рдЫреЗрдЙрдорд╛ рдмрд╛рд╣рд┐рд░реА рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рдкреНрдпрд╛рдХреЗрдЬрд┐рдЩ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд▓рд╛рдЧрд┐ рджреБрд╡реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╣рд╛рд▓, рдХрд╛рд░реНрдп рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ BinaryAST рдХреЛ рдорд╛рдирдХреАрдХрд░рдг рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реБрд░реБ рднрдПрдХреЛ рдЫ ECMA TC39, рдЬрд╕ рдкрдЫрд┐ рдврд╛рдБрдЪрд╛рд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рд╕рд╛рдордЧреНрд░реА рдХрдореНрдкреНрд░реЗрд╕рди рд╡рд┐рдзрд┐рд╣рд░реВ, рдЬрд╕реНрддреИ gzip рд░ рдмреНрд░реЛрдЯрд▓реАрд╕рдБрдЧ рд╕рд╣рдЕрд╕реНрддрд┐рддреНрд╡ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫред

Cloudflare, Mozilla рд░ Facebook рд▓реЗ JavaScript рд▓реЛрдбрд┐рдЩрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди BinaryAST рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ

Cloudflare, Mozilla рд░ Facebook рд▓реЗ JavaScript рд▓реЛрдбрд┐рдЩрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди BinaryAST рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ

рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛, рдХреЛрдбрдХреЛ рд▓реЛрдбрд┐рдЩ рд░ рдкрд╛рд░реНрд╕рд┐рдЩ рдЪрд░рдгрдорд╛ рд╕рдордпрдХреЛ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░рдХрдо рдЦрд░реНрдЪ рд╣реБрдиреНрдЫред рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ JavaScript рдХреЛ рднреЛрд▓реНрдпреБрдо 10 MB (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, LinkedIn - 7.2 MB, Facebook - 7.1 MB, Gmail - 3.9 MB) рдХреЛ рдирдЬрд┐рдХ рдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, JavaScript рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рд╢реЛрдзрдирд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдврд┐рд▓рд╛рдЗрдХреЛ рдкрд░рд┐рдЪрдп рджрд┐рдиреНрдЫред рдмреНрд░рд╛рдЙрдЬрд░ рд╕рд╛рдЗрдбрдорд╛ рдкрд╛рд░реНрд╕рд┐рдЩ рд╕реНрдЯреЗрдЬ рдкрдирд┐ рдврд┐рд▓реЛ рднрдПрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рдлреНрд▓рд╛рдИрдорд╛ рдПрдПрд╕рдЯреА рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдирд╕рдХреНрдиреЗ рдХрд╛рд░рдгрд▓реЗ рдХреЛрдб рд▓реЛрдб рд╣реБрдиреНрдЫ (рдмреНрд░рд╛рдЙрдЬрд░рд▓реЗ рдХреЛрдб рдмреНрд▓рдХрд╣рд░реВ рд▓реЛрдб рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХреБрд░реНрдиреБ рдкрд░реНрдЫ, рдЬрд╕реНрддреИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЕрдиреНрддреНрдп, рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред рд╣рд╛рд▓рдХреЛ рддрддреНрд╡рд╣рд░реВ рдкрд╛рд░реНрд╕ рдЧрд░реНрди рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ рдЬрд╛рдирдХрд╛рд░реА)ред

рддрд┐рдиреАрд╣рд░реВ рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рдХреЛрдбрд▓рд╛рдИ рдиреНрдпреВрдирддрдо рд░ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рдлрд╛рд░рдордорд╛ рд╡рд┐рддрд░рдг рдЧрд░реЗрд░, рд╕рд╛рдереИ рдмреНрд░рд╛рдЙрдЬрд░рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдмрд╛рдЗрдЯрдХреЛрдб рдХреНрдпрд╛рд╕ рдЧрд░реЗрд░ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджреИрдЫрдиреНред рдЖрдзреБрдирд┐рдХ рд╕рд╛рдЗрдЯрд╣рд░реВрдорд╛, рдХреЛрдб рдкреНрд░рд╛рдпрдГ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдХреНрдпрд╛рд╕рд┐рдВрдЧрд▓реЗ рдорд╛рддреНрд░ рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫред WebAssembly рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдпреЛ рдХреЛрдбрдорд╛ рд╕реНрдкрд╖реНрдЯ рдЯрд╛рдЗрдк рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рд░ рдЕрд╡рд╕реНрдерд┐рдд JavaScript рдХреЛрдбрдХреЛ рдкреНрд░рд╢реЛрдзрдирд▓рд╛рдИ рдЧрддрд┐ рджрд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдЫреИрдиред

рдЕрд░реНрдХреЛ рд╡рд┐рдХрд▓реНрдк рднрдиреЗрдХреЛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд╕рдЯреНрдЯрд╛ рд░реЗрдбрд┐рдореЗрдб рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рдмрд╛рдЗрдЯрдХреЛрдб рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдиреБ рд╣реЛ, рддрд░ рдмреНрд░рд╛рдЙрдЬрд░ рдЗрдиреНрдЬрд┐рди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдпрд╕рдХреЛ рд╡рд┐рд░реБрджреНрдзрдорд╛ рдЫрдиреН рдХрд┐рдирднрдиреЗ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдмрд╛рдЗрдЯрдХреЛрдб рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рдЫ, рдпрд╕рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рд╢реЛрдзрдирд▓реЗ рд╡реЗрдм рд╕реНрддрд░реАрдХрд░рдгрдорд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫ, рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдорд╣рд░реВ рдЙрддреНрдкрдиреНрди рд╣реБрди рд╕рдХреНрдЫ, рд░ рдпрд╕рдХреЛ рд╡рд┐рдХрд╛рд╕ред рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдмрд╛рдЗрдЯрдХреЛрдб рдврд╛рдБрдЪрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫред

BinaryAST рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдирдпрд╛рдБ рдмрд╛рдЗрдЯрдХреЛрдб рд╕рд┐рд░реНрдЬрдирд╛ рдирдЧрд░реА рд╡рд╛ JavaScript рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рддрдкрд╛рдИрдВрдХреЛ рд╣рд╛рд▓рдХреЛ рдХреЛрдб рд╡рд┐рдХрд╛рд╕ рд░ рдбреЗрд▓рд┐рднрд░реА рдореЛрдбреЗрд▓рдорд╛ рдлрд┐рдЯ рд╣реБрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред BinaryAST рдврд╛рдБрдЪрд╛рдорд╛ рдбреЗрдЯрд╛рдХреЛ рдЖрдХрд╛рд░ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рдорд┐рдирд┐рдлрд╛рдЗрдб JavaScript рдХреЛрдбрд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рд╕реНрд░реЛрдд рдкрд╛рда рдкрд╛рд░реНрд╕рд┐рдЩ рдЪрд░рдг рд╣рдЯрд╛рдПрд░ рдкреНрд░рд╢реЛрдзрди рдЧрддрд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдвреНрдЫред рдердк рд░реВрдкрдорд╛, рдврд╛рдБрдЪрд╛рд▓реЗ BinaryAST рд▓реЛрдб рднрдПрдХреЛ рд░реВрдкрдорд╛ рд╕рдВрдХрд▓рдирд▓рд╛рдИ рдмрд╛рдЗрдЯрдХреЛрдб рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд╕рдмреИ рдбреЗрдЯрд╛ рдкреВрд░рд╛ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирдЧрд░реАред рдердк рд░реВрдкрдорд╛, рд╕рд░реНрднрд░ рд╕рд╛рдЗрдбрдорд╛ рдкрд╛рд░реНрд╕рд┐рдЩрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдлрд┐рд░реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ BinaryAST рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдмрд╛рдЯ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдбрд╣рд░реВ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬреБрди рдмреНрд░рд╛рдЙрдЬрд░ рд╕рд╛рдЗрдбрдорд╛ рдкрд╛рд░реНрд╕ рдЧрд░реНрджрд╛, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯреНрд░рд╛рдлрд┐рдХ рдкрд╛рд░реНрд╕рд┐рдЩ рд░ рдкреНрд░рд╕рд╛рд░рдг рджреБрд╡реИ рд╕рдордп рдмрд░реНрдмрд╛рдж рдЧрд░реНрджрдЫред

BinaryAST рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рднрдиреЗрдХреЛ рдкрдвреНрди рд╕рдХрд┐рдиреЗ JavaScript рд▓рд╛рдИ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкрдирд┐ рд╣реЛ рдЬреБрди рдареНрдпрд╛рдХреНрдХреИ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╕реНрддреИ рдЫреИрди, рддрд░ рд╕рд┐рдореЗрдиреНрдЯрд┐рдХ рд░реВрдкрдорд╛ рдмрд░рд╛рдмрд░ рдЫ рд░ рдЪрд░ рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЙрд╣реА рдирд╛рдорд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ (BinaryAST рд▓реЗ рдирд╛рдорд╣рд░реВ рдмрдЪрдд рдЧрд░реНрджрдЫ, рддрд░ рд╕реНрдерд╛рдирд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдмрдЪрдд рдЧрд░реНрджреИрдиред рдХреЛрдб, рдврд╛рдБрдЪрд╛ рд░ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ)ред рд╕рд┐рдХреНрдХрд╛рдХреЛ рдЕрд░реНрдХреЛ рдкрдХреНрд╖ рдирдпрд╛рдБ рдЖрдХреНрд░рдордг рднреЗрдХреНрдЯрд░рд╣рд░реВрдХреЛ рдЙрджрдп рд╣реЛ, рддрд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХрд╛ рдЕрдиреБрд╕рд╛рд░, рддрд┐рдиреАрд╣рд░реВ рдмрд╛рдЗрдЯрдХреЛрдб рд╡рд┐рддрд░рдг рдЬрд╕реНрддрд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рднрдиреНрджрд╛ рдзреЗрд░реИ рд╕рд╛рдиреЛ рд░ рдЕрдзрд┐рдХ рдирд┐рдпрдиреНрддреНрд░рдгрдпреЛрдЧреНрдп рдЫрдиреНред

facebook.com рдХреЛрдбрдХреЛ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрд▓реЗ рджреЗрдЦрд╛рдПрдХреЛ рдЫ рдХрд┐ JavaScript рдкрд╛рд░реНрд╕рд┐рдЩрд▓реЗ CPU рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ 10-15% рдЦрдкрдд рдЧрд░реНрдЫ рд░ JIT рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдЯрдХреЛрдб рд░ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХреЛрдб рдЬреЗрдирд░реЗрдЯ рдЧрд░реНрди рднрдиреНрджрд╛ рдкрд╛рд░реНрд╕рд┐рдЩрд▓реЗ рдмрдвреА рд╕рдордп рд▓рд┐рдиреНрдЫред SpiderMonkey рдЗрдиреНрдЬрд┐рдирдорд╛, AST рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдордп 500-800 ms рд▓рд╛рдЧреНрдЫ, рд░ BinaryAST рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рдпреЛ рд╕рдВрдЦреНрдпрд╛ 70-90% рд▓реЗ рдШрдЯрд╛рдПрдХреЛ рдЫред
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдзреЗрд░реИрдЬрд╕реЛ рд╡реЗрдм рдЖрддрд┐рд╢рдмрд╛рдЬреАрдХрд╛ рд▓рд╛рдЧрд┐, BinaryAST рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, JavaScript рдкрд╛рд░реНрд╕рд┐рдЩ рд╕рдордп рдЕрдиреБрдХреВрд▓рди рдмрд┐рдирд╛ рдореЛрдбрдорд╛ 3-10% рд░ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреЗ рдореЛрдб рд╕рдХреНрд╖рдо рд╣реБрдБрджрд╛ 90-97% рд▓реЗ рдШрдЯрд╛рдЗрдиреНрдЫред
1.2 MB JavaScript рдкрд░реАрдХреНрд╖рдг рд╕реБрдЗрдЯ рдЪрд▓рд╛рдЙрдБрджрд╛, BinaryAST рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордпрд▓рд╛рдИ рдбреЗрд╕реНрдХрдЯрдк рдкреНрд░рдгрд╛рд▓реА (Intel i338) рдорд╛ 314 рджреЗрдЦрд┐ 7 ms рд░ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдг (HTC One M2019) рдорд╛ 1455 рджреЗрдЦрд┐ 8 ms рд╕рдореНрдордХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди