ΠΠ½ΠΆΠ΅Π½Π΅ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Cloudflare, Mozilla, Facebook ΠΈ Bloomberg
ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
BinaryAST ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²
ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ JavaScript Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΡΠ°Π·Π° Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ° ΠΊΠΎΠ΄Π°. Π‘ ΡΡΡΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΠΌ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ JavaScript Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ°ΠΉΡΠ°Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°Π΅ΡΡΡ ΠΊ 10 ΠΠ± (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ LinkedIn — 7.2ΠΠ±, Facebook — 7.1ΠΠ±, Gmail — 3.9ΠΠ±) ΠΏΠ΅ΡΠ²ΠΈΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° JavaScript Π²Π½ΠΎΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ. Π‘ΡΠ°Π΄ΠΈΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅ΡΡΡ ΠΈΠ·-Π·Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ AST Π½Π° Π»Π΅ΡΡ, ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠ΄Π° (Π±ΡΠ°ΡΠ·Π΅ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ, Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΡΠ΅ΠΊΡΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ).
Π§Π°ΡΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΡΠ°ΡΡΡΡ ΡΠ΅ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈ ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°. ΠΠ° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°ΠΉΡΠ°Ρ ΠΊΠΎΠ΄ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°ΡΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΡ ΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠ³ Π±Ρ ΡΡΠ°ΡΡ WebAssembly, Π½ΠΎ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΏΠ»ΠΎΡ ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° JavaScript.
ΠΡΡΠ³ΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° Π²ΠΌΠ΅ΡΡΠΎ JavaScript-ΡΠΊΡΠΈΠΏΡΠΎΠ², Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΏΡΠΎΡΠΈΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ Π±Π°ΠΉΡΠΊΠΎΠ΄ ΡΡΡΠ΄Π½ΠΎ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ, Π΅Π³ΠΎ ΠΏΡΡΠΌΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ°ΡΡΠ»ΠΎΠ΅Π½ΠΈΡ Web, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ³ΡΠΎΠ·Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°.
BinaryAST ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΏΠΈΡΠ°ΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° JavaScript. Π Π°Π·ΠΌΠ΅Ρ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ BinaryAST ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΡΠΎ ΡΠΆΠ°ΡΡΠΌ ΠΌΠΈΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ JavaScript-ΠΊΠΎΠ΄ΠΎΠΌ, Π° ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π° ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ BinaryAST, Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠ°ΡΡΠΈΠ½Π³ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· ΠΎΡΠ΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ BinaryAST Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π»ΠΈΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΡΠ°ΡΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π° ΡΠ°Π·Π±ΠΎΡ, ΡΠ°ΠΊ ΠΈ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π»ΠΈΡΠ½Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ BinaryAST ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ JavaScript Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π² ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ, Π½ΠΎ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΠ³ΠΎ ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ (BinaryAST ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠΌΠ΅Π½Π°, Π½ΠΎ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡΡ Π² ΠΊΠΎΠ΄Π΅, ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ). ΠΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ ΠΌΠ΅Π΄Π°Π»ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π΄Π»Ρ Π°ΡΠ°ΠΊ, Π½ΠΎ ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΠ½ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ², ΡΠ°ΠΊΠΈΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π±Π°ΠΉΡΠΊΠΎΠ΄Π°.
Π’Π΅ΡΡΡ ΠΊΠΎΠ΄Π° facebook.com ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ Π½Π° ΡΠ°Π·Π±ΠΎΡ JavaScript ΡΡΠ°ΡΠΈΡΡΡ 10-15% ΡΠ΅ΡΡΡΡΠΎΠ² CPU ΠΈ Π½Π° ΠΏΠ°ΡΡΠΈΠ½Π³ ΡΡ
ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JIT. Π Π΄Π²ΠΈΠΆΠΊΠ΅ SpiderMonkey Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ AST Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 500-800 ΠΌΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ BinaryAST ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΡΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° 70-90%.
Π ΡΠ΅Π»ΠΎΠΌ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° web-ΡΠ΅ΠΉΠΌΠ²ΡΠΎΠΊΠΎΠ² ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ BinaryAST Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° JavaScript ΡΠΎΠΊΡΠ°ΡΠ°Π΅ΡΡΡ Π½Π° 3-10% Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π° 90-97% ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ JavaScript-Π½Π°Π±ΠΎΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 1.2 ΠΠ±, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ BinaryAST ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΠ°Π»Π° Π·Π°ΠΏΡΡΠΊΠ° Ρ 338 Π΄ΠΎ 314 ΠΌΡ Π½Π° Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (Intel i7) ΠΈ Ρ 2019 Π΄ΠΎ 1455 ΠΌΡ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ (HTC One M8).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru