हां, लेकिन कुछ हद तक - यह एक शैक्षिक अवसर के रूप में अच्छा है कि यह देखने के लिए कि हुड के नीचे क्या चल रहा है, लेकिन शायद संयम में किया जाना चाहिए।
यह एक अच्छी बात हो सकती है, क्योंकि बाइटकोड को देखते हुए यह समझने में मदद मिल सकती है कि जावा स्रोत कोड जावा बाइटकोड में कैसे संकलित किया जाएगा। साथ ही, यह कुछ विचार दे सकता है कि कंपाइलर द्वारा किस तरह के अनुकूलन किए जाएंगे, और शायद संकलक द्वारा किए जा सकने वाले अनुकूलन की मात्रा के लिए कुछ सीमाएं हो सकती हैं।
उदाहरण के लिए, अगर एक स्ट्रिंग संयोजन किया जाता है, javac
संयोजन एक StringBuilder
का उपयोग करने और String
रों श्रेणीबद्ध करने के लिए append
तरीकों प्रदर्शन में अनुकूलित करेंगे।
हालांकि, अगर स्ट्रिंग संयोजन एक पाश में किया जाता है, एक नया StringBuilder
प्रत्येक यात्रा पर मैन्युअल रूप से पाश के बाहर एक StringBuilder
instantiating के लिए और केवल पाश अंदर append
रों प्रदर्शन की तुलना में instantiated जा सकता है, संभव निष्पादन में कमी के लिए अग्रणी।
जेआईटी के मुद्दे पर। जस्ट-इन-टाइम संकलन जेवीएम कार्यान्वयन विशिष्ट होने जा रहा है, इसलिए यह पता लगाना बहुत आसान नहीं है कि वास्तव में बाइटकोड में क्या हो रहा है जब इसे देशी कोड में परिवर्तित किया जा रहा है, और इसके अलावा, हम यह नहीं बता सकते कि कौन से हिस्से JITted जा रहे हैं (कम से कम कुछ JVM- विशिष्ट उपकरण के बिना यह देखने के लिए कि किस प्रकार का जेआईटी संकलन किया जा रहा है - मुझे इस क्षेत्र में कोई विशिष्ट जानकारी नहीं है, इसलिए मैं अनुमान लगा रहा हूं।)
उस ने कहा, JVM बाइटकोड को निष्पादित करने जा रहा है, जिस तरह से इसे निष्पादित किया जा रहा है वह डेवलपर के लिए कम या ज्यादा अपारदर्शी है, और फिर, JVM- विशिष्ट। कुछ प्रदर्शन चाल हो सकती हैं जो एक JVM करता है जबकि दूसरा नहीं करता है।
जब यह उत्पन्न बाईटकोड को देखने का मुद्दा करने के लिए नीचे आता है, यह सीखने क्या वास्तव में स्रोत कोड के लिए हो रहा है जब यह बाईटकोड को संकलित किया गया है करने के लिए नीचे आता है। कंपाइलर द्वारा किए गए अनुकूलन के प्रकारों को देखने में सक्षम होने के नाते, लेकिन यह भी समझते हुए कि संकलक अनुकूलन करने के तरीके की सीमाएं हैं।
सब कहा, मैं यह एक बहुत अच्छा विचार बाईटकोड पीढ़ी के बारे में जुनूनी बनने के लिए है नहीं लगता और कार्यक्रमों है कि सबसे अधिक अनुकूलित बाईटकोड उत्सर्जित करेगा लिखने की कोशिश कर रहा है। जावा स्रोत कोड लिखना और अधिक महत्वपूर्ण है जो दूसरों द्वारा पठनीय और रखरखाव योग्य है।
लेकिन कोल मिलने एक बेहतर चालक बन गया एक बार वह कार internals के बारे में सीखा। – Boune