निम्नलिखित 2 परिदृश्यों पर विचार करें:लूपिंग के दौरान कौन सा खर्च होता है; असाइनमेंट या एक कथन?
boolean b = false;
int i = 0;
while(i++ < 5) {
b = true;
}
या
boolean b = false;
int i = 0;
while(i++ < 5) {
if(!b) {
b = true;
}
}
कौन सा "महंगा" करना है? अगर उत्तर प्रयुक्त भाषा/कंपाइलर पर निर्भर करता है, तो कृपया प्रदान करें। मेरी मुख्य प्रोग्रामिंग भाषा जावा है।
कृपया प्रश्न पूछें कि मैं ऐसा क्यों करना चाहूंगा .. वे केवल बेयरबोन उदाहरण हैं जो प्रासंगिक इंगित करते हैं: क्या एक चर को एक लूप में एक ही मान को बार-बार सेट करना चाहिए या इसे होना चाहिए प्रत्येक लूप पर परीक्षण किया गया है कि इसमें बदलने के लिए आवश्यक मूल्य है?
संभावित डुप्लिकेट [क्या तेज़ तब गुणा और असाइनमेंट है?] (Http://stackoverflow.com/questions/4024201/are-if-thens-faster-then-multiplication-and-assignment) –
अगर मुझे याद है मेरा कंपाइलर क्लास सही ढंग से, http://en.wikipedia.org/wiki/Branch_predictor के कारण ये दोनों ही इसके बारे में होंगे। मुझे लगता है कि पहली बार शाखा करने के लिए थोड़ा और समय लगेगा लेकिन उसके बाद संकलक पूर्वानुमान कर सकता है और तदनुसार समायोजित कर सकता है। –
यहां आपको कई जवाब मिलेंगे http://www.agner.org/optimize/optimizing_cpp.pdf – ruslik