ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಲೋಡಿಂಗ್ ಅನ್ನು ವೇಗಗೊಳಿಸಲು ಕ್ಲೌಡ್‌ಫ್ಲೇರ್, ಮೊಜಿಲ್ಲಾ ಮತ್ತು ಫೇಸ್‌ಬುಕ್ ಬೈನರಿಎಎಸ್‌ಟಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತವೆ

Cloudflare, Mozilla, Facebook ಮತ್ತು Bloomberg ಇಂಜಿನಿಯರ್‌ಗಳು ನೀಡಲಾಗಿದೆ ಹೊಸ ಸ್ವರೂಪ ಬೈನರಿಸ್ಟ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಸೈಟ್‌ಗಳನ್ನು ತೆರೆಯುವಾಗ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್‌ನ ವಿತರಣೆ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಿಕೆಯನ್ನು ವೇಗಗೊಳಿಸಲು. BinaryAST ಪಾರ್ಸಿಂಗ್ ಹಂತವನ್ನು ಸರ್ವರ್ ಬದಿಗೆ ಸರಿಸುತ್ತದೆ ಮತ್ತು ಈಗಾಗಲೇ ರಚಿಸಲಾದ ಅಮೂರ್ತ ಸಿಂಟ್ಯಾಕ್ಸ್ ಟ್ರೀ ಅನ್ನು ಪೂರೈಸುತ್ತದೆ (ಎಎಸ್ಟಿ) BinaryAST ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಬ್ರೌಸರ್ ತಕ್ಷಣವೇ ಸಂಕಲನ ಹಂತಕ್ಕೆ ಮುಂದುವರಿಯಬಹುದು, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಪಾರ್ಸಿಂಗ್ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.

ಪರೀಕ್ಷೆಗಾಗಿ ತಯಾರಾದ MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಸರಬರಾಜು ಮಾಡಲಾದ ಉಲ್ಲೇಖ ಅನುಷ್ಠಾನ. Node.js ಘಟಕಗಳನ್ನು ಪಾರ್ಸಿಂಗ್‌ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆಪ್ಟಿಮೈಸೇಶನ್ ಮತ್ತು AST ಉತ್ಪಾದನೆಯ ಕೋಡ್ ಅನ್ನು ರಸ್ಟ್‌ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಬ್ರೌಸರ್-ಸೈಡ್ ಬೆಂಬಲ
BinaryAST ಈಗಾಗಲೇ ಲಭ್ಯವಿದೆ ರಾತ್ರಿಯ ನಿರ್ಮಾಣಗಳು ಫೈರ್‌ಫಾಕ್ಸ್. BinaryAST ನಲ್ಲಿರುವ ಎನ್‌ಕೋಡರ್ ಅನ್ನು ಅಂತಿಮ ಸೈಟ್ ಟೂಲಿಂಗ್ ಮಟ್ಟದಲ್ಲಿ ಮತ್ತು ಪ್ರಾಕ್ಸಿ ಅಥವಾ ಕಂಟೆಂಟ್ ಡೆಲಿವರಿ ನೆಟ್‌ವರ್ಕ್‌ನ ಬದಿಯಲ್ಲಿ ಬಾಹ್ಯ ಸೈಟ್‌ಗಳ ಪ್ಯಾಕೇಜಿಂಗ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಿಗೆ ಬಳಸಬಹುದು. ಪ್ರಸ್ತುತ, ಕಾರ್ಯನಿರತ ಗುಂಪಿನಿಂದ BinaryAST ಪ್ರಮಾಣೀಕರಣ ಪ್ರಕ್ರಿಯೆಯು ಈಗಾಗಲೇ ಪ್ರಾರಂಭವಾಗಿದೆ ECMA TC39, ಅದರ ನಂತರ ಸ್ವರೂಪವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವಿಷಯ ಸಂಕೋಚನ ವಿಧಾನಗಳೊಂದಿಗೆ ಸಹಬಾಳ್ವೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ gzip ಮತ್ತು brotli.

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಲೋಡಿಂಗ್ ಅನ್ನು ವೇಗಗೊಳಿಸಲು ಕ್ಲೌಡ್‌ಫ್ಲೇರ್, ಮೊಜಿಲ್ಲಾ ಮತ್ತು ಫೇಸ್‌ಬುಕ್ ಬೈನರಿಎಎಸ್‌ಟಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತವೆ

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಲೋಡಿಂಗ್ ಅನ್ನು ವೇಗಗೊಳಿಸಲು ಕ್ಲೌಡ್‌ಫ್ಲೇರ್, ಮೊಜಿಲ್ಲಾ ಮತ್ತು ಫೇಸ್‌ಬುಕ್ ಬೈನರಿಎಎಸ್‌ಟಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತವೆ

JavaScript ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಾಗ, ಕೋಡ್‌ನ ಲೋಡಿಂಗ್ ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ಹಂತದಲ್ಲಿ ಗಮನಾರ್ಹ ಸಮಯವನ್ನು ಕಳೆಯಲಾಗುತ್ತದೆ. ಅನೇಕ ಜನಪ್ರಿಯ ಸೈಟ್‌ಗಳಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನ ಪರಿಮಾಣವು 10 MB ಯ ಸಮೀಪದಲ್ಲಿದೆ ಎಂದು ಪರಿಗಣಿಸಿ (ಉದಾಹರಣೆಗೆ, ಲಿಂಕ್ಡ್‌ಇನ್ - 7.2 MB, Facebook - 7.1 MB, Gmail - 3.9 MB), ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನ ಆರಂಭಿಕ ಪ್ರಕ್ರಿಯೆಯು ಗಮನಾರ್ಹ ವಿಳಂಬವನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಕೋಡ್ ಲೋಡ್ ಆಗುತ್ತಿದ್ದಂತೆ ಫ್ಲೈನಲ್ಲಿ AST ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿರ್ಮಿಸಲು ಅಸಮರ್ಥತೆಯಿಂದಾಗಿ ಬ್ರೌಸರ್ ಬದಿಯಲ್ಲಿರುವ ಪಾರ್ಸಿಂಗ್ ಹಂತವು ನಿಧಾನಗೊಳ್ಳುತ್ತದೆ (ಬ್ರೌಸರ್ ಪಡೆಯಲು ಕೋಡ್ ಬ್ಲಾಕ್‌ಗಳು ಲೋಡ್ ಆಗುವವರೆಗೆ ಕಾಯಬೇಕಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ಕಾರ್ಯಗಳ ಅಂತ್ಯ ಪ್ರಸ್ತುತ ಅಂಶಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಮಾಹಿತಿಯು ಕಾಣೆಯಾಗಿದೆ).

ಅವರು ಕೋಡ್ ಅನ್ನು ಕಡಿಮೆಗೊಳಿಸಿದ ಮತ್ತು ಸಂಕುಚಿತ ರೂಪದಲ್ಲಿ ವಿತರಿಸುವ ಮೂಲಕ ಸಮಸ್ಯೆಯನ್ನು ಭಾಗಶಃ ಪರಿಹರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದಾರೆ, ಹಾಗೆಯೇ ಬ್ರೌಸರ್ ಮೂಲಕ ರಚಿತವಾದ ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ ಮೂಲಕ. ಆಧುನಿಕ ಸೈಟ್‌ಗಳಲ್ಲಿ, ಕೋಡ್ ಅನ್ನು ಆಗಾಗ್ಗೆ ನವೀಕರಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವುದು ಸಮಸ್ಯೆಯನ್ನು ಭಾಗಶಃ ಪರಿಹರಿಸುತ್ತದೆ. WebAssembly ಒಂದು ಪರಿಹಾರವಾಗಿರಬಹುದು, ಆದರೆ ಇದಕ್ಕೆ ಕೋಡ್‌ನಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ ಟೈಪಿಂಗ್ ಅಗತ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ JavaScript ಕೋಡ್‌ನ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವೇಗಗೊಳಿಸಲು ಇದು ಸೂಕ್ತವಲ್ಲ.

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಬದಲಿಗೆ ರೆಡಿಮೇಡ್ ಕಂಪೈಲ್ ಮಾಡಿದ ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ತಲುಪಿಸುವುದು ಇನ್ನೊಂದು ಆಯ್ಕೆಯಾಗಿದೆ, ಆದರೆ ಬ್ರೌಸರ್ ಎಂಜಿನ್ ಡೆವಲಪರ್‌ಗಳು ಇದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿದ್ದಾರೆ ಏಕೆಂದರೆ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಬೈಟ್‌ಕೋಡ್ ಪರಿಶೀಲಿಸಲು ಕಷ್ಟವಾಗುತ್ತದೆ, ಅದರ ನೇರ ಪ್ರಕ್ರಿಯೆಯು ವೆಬ್ ಶ್ರೇಣೀಕರಣಕ್ಕೆ ಕಾರಣವಾಗಬಹುದು, ಹೆಚ್ಚುವರಿ ಭದ್ರತಾ ಅಪಾಯಗಳು ಉಂಟಾಗಬಹುದು ಮತ್ತು ಅಭಿವೃದ್ಧಿ ಸಾರ್ವತ್ರಿಕ ಬೈಟ್‌ಕೋಡ್ ಸ್ವರೂಪದ ಅಗತ್ಯವಿದೆ.

ಹೊಸ ಬೈಟ್‌ಕೋಡ್ ಅನ್ನು ರಚಿಸದೆ ಅಥವಾ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಭಾಷೆಯನ್ನು ಬದಲಾಯಿಸದೆ ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಕೋಡ್ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ವಿತರಣಾ ಮಾದರಿಗೆ ಹೊಂದಿಕೊಳ್ಳಲು BinaryAST ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. BinaryAST ಸ್ವರೂಪದಲ್ಲಿನ ಡೇಟಾದ ಗಾತ್ರವು ಸಂಕುಚಿತ ಮಿನಿಫೈಡ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್‌ಗೆ ಹೋಲಿಸಬಹುದು ಮತ್ತು ಮೂಲ ಪಠ್ಯ ಪಾರ್ಸಿಂಗ್ ಹಂತವನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಪ್ರಕ್ರಿಯೆಯ ವೇಗವು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಾಗುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಎಲ್ಲಾ ಡೇಟಾ ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಕಾಯದೆ, BinaryAST ಲೋಡ್ ಆಗಿರುವಂತೆ ಸಂಕಲನವನ್ನು ಬೈಟ್‌ಕೋಡ್ ಮಾಡಲು ಸ್ವರೂಪವು ಅನುಮತಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ ಪಾರ್ಸಿಂಗ್ ಮಾಡುವುದರಿಂದ ಬಳಕೆಯಾಗದ ಕಾರ್ಯಗಳನ್ನು ಮತ್ತು ಅನಗತ್ಯ ಕೋಡ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸಿದ ಬೈನರಿಎಎಸ್ಟಿ ಪ್ರಾತಿನಿಧ್ಯದಿಂದ ಹೊರಗಿಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಬ್ರೌಸರ್ ಬದಿಯಲ್ಲಿ ಪಾರ್ಸ್ ಮಾಡುವಾಗ, ಅನಗತ್ಯ ದಟ್ಟಣೆಯನ್ನು ಪಾರ್ಸಿಂಗ್ ಮತ್ತು ರವಾನಿಸುವ ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತದೆ.

BinaryAST ನ ವೈಶಿಷ್ಟ್ಯವೆಂದರೆ ಓದಬಲ್ಲ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವ ಸಾಮರ್ಥ್ಯವು ಮೂಲ ಆವೃತ್ತಿಯಂತೆಯೇ ಅಲ್ಲ, ಆದರೆ ಶಬ್ದಾರ್ಥವಾಗಿ ಸಮಾನವಾಗಿರುತ್ತದೆ ಮತ್ತು ಅಸ್ಥಿರ ಮತ್ತು ಕಾರ್ಯಗಳ ಅದೇ ಹೆಸರುಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ (BinaryAST ಹೆಸರುಗಳನ್ನು ಉಳಿಸುತ್ತದೆ, ಆದರೆ ಸ್ಥಾನಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸುವುದಿಲ್ಲ. ಕೋಡ್, ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮತ್ತು ಕಾಮೆಂಟ್‌ಗಳು). ನಾಣ್ಯದ ಇನ್ನೊಂದು ಬದಿಯು ಹೊಸ ದಾಳಿ ವಾಹಕಗಳ ಹೊರಹೊಮ್ಮುವಿಕೆಯಾಗಿದೆ, ಆದರೆ ಡೆವಲಪರ್‌ಗಳ ಪ್ರಕಾರ, ಬೈಟ್‌ಕೋಡ್ ವಿತರಣೆಯಂತಹ ಪರ್ಯಾಯಗಳನ್ನು ಬಳಸುವಾಗ ಅವು ಚಿಕ್ಕದಾಗಿರುತ್ತವೆ ಮತ್ತು ಹೆಚ್ಚು ನಿಯಂತ್ರಿಸಬಹುದು.

facebook.com ಕೋಡ್‌ನ ಪರೀಕ್ಷೆಗಳು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪಾರ್ಸಿಂಗ್ ಮಾಡುವುದು 10-15% CPU ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ಬೈಟ್‌ಕೋಡ್ ಮತ್ತು JIT ಗಾಗಿ ಆರಂಭಿಕ ಕೋಡ್ ಉತ್ಪಾದನೆಗಿಂತ ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಎಂದು ತೋರಿಸಿದೆ. SpiderMonkey ಎಂಜಿನ್‌ನಲ್ಲಿ, AST ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಿರ್ಮಿಸುವ ಸಮಯವು 500-800 ms ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಮತ್ತು BinaryAST ಬಳಕೆಯು ಈ ಅಂಕಿಅಂಶವನ್ನು 70-90% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡಿದೆ.
ಸಾಮಾನ್ಯವಾಗಿ, ಹೆಚ್ಚಿನ ವೆಬ್ ಪಟಾಕಿಗಳಿಗೆ, BinaryAST ಅನ್ನು ಬಳಸುವಾಗ, ಆಪ್ಟಿಮೈಸೇಶನ್ ಇಲ್ಲದೆ ಮೋಡ್‌ನಲ್ಲಿ JavaScript ಪಾರ್ಸಿಂಗ್ ಸಮಯವನ್ನು 3-10% ರಷ್ಟು ಕಡಿಮೆಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಳಕೆಯಾಗದ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುವ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ 90-97% ರಷ್ಟು ಕಡಿಮೆಯಾಗುತ್ತದೆ.
1.2 MB ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪರೀಕ್ಷಾ ಸೆಟ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವಾಗ, BinaryAST ಅನ್ನು ಬಳಸಿಕೊಂಡು ಡೆಸ್ಕ್‌ಟಾಪ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ (Intel i338) 314 ರಿಂದ 7 ms ವರೆಗೆ ಮತ್ತು ಮೊಬೈಲ್ ಸಾಧನದಲ್ಲಿ (HTC One M2019) 1455 ರಿಂದ 8 ms ವರೆಗೆ ವೇಗವನ್ನು ಹೆಚ್ಚಿಸಲು ಆರಂಭಿಕ ಸಮಯವನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ