ठीक है, मैंने जेआईटी और गैर-जेआईटी सक्षम दुभाषियों के बीच मतभेदों के बारे में कई चर्चाएं पढ़ी हैं, और जेआईटी आमतौर पर प्रदर्शन को बढ़ावा देती है।दोनों जेआईटी और गैर-जेआईटी सक्षम इंटरप्रिटर न करें मशीन कोड
लेकिन, मेरा सवाल यह है:
अंत में, एक गैर JIT दुभाषिया, मशीन/मूल कोड में बाईटकोड (लाइन द्वारा लाइन) मुड़ने के लिए निष्पादित करने के लिए नहीं है सक्षम जैसे एक JIT कम्पाइलर करना होगा ? मैंने पोस्ट और पाठ्यपुस्तकों को देखा है जो कहते हैं कि यह करता है, और पोस्ट जो कहते हैं कि यह नहीं करता है। बाद का तर्क यह है कि दुभाषिया/जेवीएम इस बाइटकोड को सीधे मशीन/मूल कोड के साथ कोई बातचीत नहीं करता है।
गैर JIT दुभाषिए मशीन कोड में प्रत्येक पंक्ति बारी करते हैं, ऐसा लगता है कि JIT के प्राथमिक लाभों रहे हैं ...
कैशिंग या तो सभी (सामान्य JIT) की बुद्धि या अक्सर सामना करना पड़ा (हॉटस्पॉट/अनुकूली अनुकूलन) बाइटकोड के कुछ हिस्सों ताकि मशीन कोड संकलन चरण हर बार जरूरी नहीं है।
कोई भी अनुकूलन जेआईटी कंपाइलर मशीन कोड में बाइटकोड का अनुवाद करने में प्रदर्शन कर सकता है।
क्या यह सटीक है? गैर-जेआईटी और जेआईटी सक्षम दुभाषियों के माध्यम से मशीन कोड में बाइटकोड के अनुवाद के बीच) संभवतः छोटे अनुकूलता (संभवतः ऑप्टिमाइज़ेशन के अलावा, या लाइन द्वारा जेआईटीटिंग ब्लॉक बनाम लाइन) में थोड़ा अंतर दिखाई देता है।
अग्रिम धन्यवाद।
प्रतिक्रिया के लिए धन्यवाद! मैं "सी ++ में खेलों और ग्राफिक्स के साथ शुरू करना" पुस्तक पढ़ रहा था, और यह उल्लेख करता है "दुभाषिया प्रत्येक उच्च स्तरीय निर्देश को इसके समतुल्य मशीन भाषा निर्देश में अनुवाद करता है और तुरंत इसे निष्पादित करता है।" यही वह जगह है जहां भ्रम शुरू हुआ। हालांकि, यह सामान्य रूप से दुभाषियों के बारे में बात कर रहा था। –
एक दुभाषिया मशीन भाषा के एक वर्ग में स्विच/कूदकर मशीन स्तर पर उच्च स्तरीय आदेशों का अनुवाद करता है जो उच्च स्तरीय कमांड द्वारा प्रस्तुत ऑपरेशन लागू करता है। –