यह अच्छी तरह से ज्ञात है कि जावा भाषा अनुपालन को संकलित कोड की लाइनों को फिर से व्यवस्थित करने की अनुमति देती है जब तक कि पुन: आदेश कोड सेमेटिक्स में कोई फर्क नहीं पड़ता। हालांकि, कंपाइलर को केवल वर्तमान थ्रेड से देखे गए अर्थशास्त्र के बारे में परेशान करने की आवश्यकता है। इस क्रम को आगे-एक बहु स्थिति में अर्थ विज्ञान को प्रभावित करता है, यह आमतौर पर कारण बनता है संगामिति मुद्दों (स्मृति दृश्यता)जावा मेमोरी मॉडल: कंपाइलर कोड लाइनों को पुनर्व्यवस्थित करना
मेरा प्रश्न (ओं):
क्या संकलक को यह FREEDM अनुमति देकर हासिल की है? क्या संकलक के लिए कोड वास्तव में संभव है जो कोड को पुन: व्यवस्थित करके अधिक कुशल है? मुझे अभी तक एक व्यावहारिक मामला नहीं दिख रहा है। मुझे कभी-कभी लगता है कि लाभ अगर किसी भी तरह के समेकन जोखिम से अधिक है, तो इससे लाभ हो सकता है।
क्या कोई तरीका है कि प्रोग्रामर संकलक को बता सकता है कि इस तरह की रेखाओं को पुनर्व्यवस्थित न करें? मुझे पता है कि सिंक्रनाइज़ेशन प्राइमेटिव का उपयोग करके पुन: व्यवस्थित करने के दुष्प्रभावों को प्रभावी ढंग से संभालता है, लेकिन मैं यह पूछ रहा हूं कि इसे बंद करने के लिए कोई प्रत्यक्ष तरीका (कंपाइलर विकल्प) है या नहीं?
यह सीपीयू पुन: आदेश निर्देशों को नहीं रोकेगा। ;) –
और यह आपके प्रोग्राम को वास्तव में धीमा कर देता है, इसलिए यह कोई विकल्प नहीं है जो किसी भी उत्पादन के उपयोग के लिए उपयोगी है। – Jesper