क्या asm.js कोड समय और चलाने में संकलित है? क्या में संकलित?
विभिन्न ब्राउज़र विभिन्न तरीकों से asm.js कोड संकलित करते हैं। अगस्त 2015 तक:
- फ़ायरफ़ॉक्स asm.js को मशीन कोड के लिए संकलित करता है (और समान asm.js के भविष्य के भार के लिए मशीन कोड को कैश करता है) [ 1 ]।
- विंडोज 10 में एक प्रायोगिक ध्वज के रूप में, एज asm.js [ 2 ] का कुछ आगे-पीछे सत्यापन और संकलन भी करेगा ।
- क्रोम विशेष रूप से asm.js की शुरुआत में पार्स करने के लिए "यूज़ एएसएम" निर्देश को पहचानता है और इसे कोड का और अधिक उत्सुकता से विश्लेषण करता है और संकलन उत्तराधिकारियों को ट्वीक करता है।
- सफारी का कोई विशेष प्रसंस्करण नहीं है।
Asm.js के अलावा अन्य टेक्स्ट और wasm (वेब असेंबली) द्विआधारी होने के कारण, 2 के बीच अंतर क्या हैं?
asm.js सिर्फ जावास्क्रिप्ट है और इस प्रकार जावास्क्रिप्ट कल्पना के अनुसार बिल्कुल व्यवहार करना चाहिए। एक नए मानक के रूप में, WebAssembly कुछ कोने के मामलों को ठीक करने में सक्षम है जहां जावास्क्रिप्ट व्यवहार आदर्श नहीं है (प्रदर्शन या संकलन के दृष्टिकोण से) [ 3 ]। भविष्य में [ 4 ], WebAssembly उन सुविधाओं को जोड़ने में सक्षम होगा जो अन्यथा जावास्क्रिप्ट में व्यक्त करना मुश्किल होगा।
ब्राउज़र में चल रही अन्य स्क्रिप्टिंग भाषाओं के लिए इसका क्या मतलब है? उदाहरण के लिए अजगर को लें, क्या यह होने वाला है
- अजगर कोड wasm के लिए संकलित? या
- अजगर दुभाषिया (Cpython) wasm में संकलित और अजगर की व्याख्या?
V.1 में, एक ब्राउज़र में पायथन को चलाने का सबसे सरल तरीका, जैसा कि आपने कहा, वह पायथन इंटरप्रेटर को wasm पर संकलित करना होगा। इसका मतलब है, उदाहरण के लिए, पायथन जीसी wasm कोड में चल रहा है और मैन्युअल रूप से wasm रैखिक मेमोरी का प्रबंधन कर रहा है। PyPy [ 5 ] के लिए एक asm.js बैकएंड को जोड़ने के लिए पहले से ही एक प्रायोगिक परियोजनाएं रही हैं (जो कि बस wasm के लिए काम कर सकती थीं)। यह वर्तमान में asm.js की सीमाओं में चलता है जो कि wasm की गतिशील लिंकिंग भविष्य की विशेषता द्वारा संबोधित किया जा सकता है । आगे जाकर, वह दोनों जीसी एकीकरण और जेआईटी संकलन समर्थन दोनों प्रदान करना चाहता है, जो वेब प्लेटफॉर्म के साथ अधिक कुशल और प्राकृतिक एकीकरण की अनुमति देगा।