c++ - How often will processor check while loop condition? -
मुझे पता है कि यदि लूप का यह शरीर है:
जबकि (a & lt; b ) {Do_some_calculations} यह गणना करेगा और तब फिर से लूप की जांच करेगा। लेकिन अगर मेरे पास एक खाली जबकि पाश: जबकि (a & lt; b) {} यह कितनी बार स्थिति की जांच करेगा? मुझे पता है कि जब लूप cmp और jmp निर्देश (जो एक से दो चक्रों पर ले जाता है) तो क्या यह हर 1-2 चक्रों में लूप की जांच करेगा? या नहीं और कुछ ऐसी चीजें हैं जो मुझे नहीं पता हैं? विस्तार स्पष्टीकरण बहुत उपयोगी होगा पीएस प्रश्न निम्न स्तर के विवरण के बारे में है। कृपया इसे अधिक ध्यान से पढ़ें.और मैं आम सिद्धांतों को जानना चाहता हूं और "यह संकलक पर आधारित है और नहीं"। <पी> पी पी एस मान लीजिए हमारे पास इसके लिए कुछ वैध शर्त और कंपाइलर जनरेटेड कोड है। कितनी बार इसे चेक होगा? यह सवाल है।
आप सही सवाल पूछना नहीं लगता है। यदि सवाल में कोडांतरक कोड उत्पन्न करने वाली भाषा शामिल होती है, तो आपका जवाब होगा, कि यह संकलक, अनुकूलन स्तर और कुछ अन्य चीजों पर निर्भर करता है, लेकिन सबसे महत्वपूर्ण बात यह कि स्थिति । प्रत्येक पाश एक परीक्षण करेगी अगर उस टेस्ट में डेटाबेस पर जाकर वहां कुछ भी शामिल करना शामिल है, तो आपका लूप थोड़ी देर तक निष्पादित होगा यदि आप कुछ समाप्ति समय (उदाहरण के तौर पर) के खिलाफ स्थानीय समय की जांच करते हैं। स्थिति के बारे में और ज्ञान के बिना, कोई सामान्य उत्तर संभव नहीं है। शर्त के आधार पर, ज़ाहिर है, कंपाइलर कभी-कभी परीक्षण को अनुकूलित करने में सक्षम हो जाएगा, लेकिन केवल तभी जब कोड का दृश्य व्यवहार इस पर निर्भर नहीं करेगा। इसलिए अवधारणा है, इस शर्त को अभी भी प्रत्येक आवृत्ति पर चेक किया गया है। जब तक, बेशक, हालत झूठी पैदा होती है और लूप समाप्त होता है।
Comments
Post a Comment