2013-08-01 9 views
18

asm.js में संकलित करना है। अब क्रोम की भी अफवाहें जल्द ही इसका समर्थन कर रही हैं।जावा को asm.js

लेकिन अब तक यह जावास्क्रिप्ट में C/C++ स्रोत है कि देशी गति के पास साथ चल पाएंगे संकलित करने के लिए इस्तेमाल किया गया है (यदि आप देशी पास कैसे परिभाषित पर निर्भर करता है ...)

मैं इस्तेमाल की योजना बना दिया है जीडब्ल्यूटी को जावास्क्रिप्ट में अपना जावा कोड बदलने के लिए, लेकिन अब मैं सोच रहा था कि क्या वर्तमान में मौजूदा पथ/प्रक्रिया सादा जावा स्रोत कोड ASM.JS को संकलित करने के लिए है, और यह क्या होगा?

एक और कारण है कि एक ही है कि चाहते हो सकता है: - C/C++ की तरह Java-to-ASM.js might very well run faster then Java-to-Dalvik on some Android phone!

+0

कुछ अन्य विकल्प, जो ब्राउज़र में जावा चलाने की इच्छा रखते हैं; अधिकांश JVM स्वयं को अनुकरण करना: http://teavm.org/ और http://www.doppiojvm.org/ –

उत्तर

8

asm.js (वर्तमान में) भाषाओं कि मैन्युअल स्मृति आवंटन का प्रबंधन और रिलीज के लिए एक लक्ष्य के रूप में बनाया गया है। यह वर्तमान में कचरा संग्रह अर्थशास्त्र के साथ भाषाओं को संभाल नहीं सकता है, मूर्खतापूर्ण है क्योंकि ऐसा लगता है कि यह जावास्क्रिप्ट है जो एक कचरा एकत्रित रनटाइम है।

यदि आप वास्तव में दौर के रास्ते पर जाना चाहते हैं, तो जावा कोड को j2c के माध्यम से पास करें और फिर emscripten के माध्यम से उस C++ आउटपुट को पास करें जो asm.js. को संकलित करेगा।

एक और संभावना

+3

ध्यान दें कि जावा में संग्रहित कचरा सी/सी ++ में लिखा गया है। – Tim

2

न केवल कचरा इकट्ठा लेकिन जावा वी एम में लिखा है VMKit का उपयोग कर LLVM संकलक के माध्यम से जावा कोड गुजरती हैं और LLVM बैकएंड asm.js emscripten के माध्यम से पारित करने के लिए है कि ... होगा सी/सी ++, asm.js the possibility पर "सी/सी ++ से जावास्क्रिप्ट तक पूरे वीएम संकलित करने और जावास्क्रिप्ट उत्सर्जित जेआईटी लागू करने के लिए टिप्पणियां।"।

अभी (जून 2015) यह संभावना वास्तविक से बहुत दूर है, इसलिए यदि आप ऐसा महसूस करते हैं तो जीडब्ल्यूटी (मैं इसकी अनुशंसा नहीं करता) से चिपक जाता हूं।

संबंधित मुद्दे