मैं उत्सुक हूं कि सूर्य ने जेवीएम को स्टैक-आधारित बनाने का फैसला क्यों किया और Google ने DalvikVM को रजिस्टर-आधारित बनाने का निर्णय लिया?
मुझे लगता है कि जेवीएम वास्तव में यह नहीं मान सकता है कि टारगेट प्लेटफॉर्म पर एक निश्चित संख्या में रजिस्टर उपलब्ध हैं, क्योंकि यह प्लेटफॉर्म स्वतंत्र होना चाहिए। इसके बाद यह सिर्फ JIT कंपाइलर को रजिस्टर-आवंटन आदि को स्थगित कर देता है। (यदि मैं गलत हूं तो मुझे सही करों।)
तो एंड्रॉइड लोगों ने सोचा, "अरे, यह अक्षम है, चलो एक रजिस्टर आधारित vm के लिए तुरंत जाएं ..."? लेकिन रुकिए, कई अलग-अलग एंड्रॉइड डिवाइस हैं, किस संख्या में रजिस्टरों ने दाल्विक को निशाना बनाया? क्या Dalvik opcodes रजिस्टर की एक निश्चित संख्या के लिए हार्डकोड किया गया है?
क्या बाजार के सभी वर्तमान Android उपकरणों में लगभग समान रजिस्टर हैं? या, क्या डेक्स-लोडिंग के दौरान किया गया एक रजिस्टर पुनः आवंटन है? यह सब एक साथ कैसे फिट होता है?