दो अलग लूप या लूप स्पीड तुलना में दो शर्त

Aug 17 2020

मेरे पास अभी दो लूप हैं और इसके अंदर कुछ असाइनमेंट हैं, लेकिन मुझे इसे सबसे तेज तरीके से बनाना है।

        for (var i = 0; i < Math.Min(data.elementsOne.Count(), 5)) ; i++) {
            if (data.PairSymbol == "xxx") { oldxxxA = xxxAa; xxxAa = data.elementsOne[0].Amount; oldxxxB = xxxBb; xxxBb = data.elementsTwo[0].Amount; }
            //I HAVE 20 IF BLOCK INSIDE OF IT.  
        }
        for (var i = 0; i < (Math.Min(data.elementsOne.Count(), 5)) || i < Math.Min(data.elementsTwo.Count(), 5); i++)
        {
            if (data.PairSymbol == "xxx") { oldxxxA = xxxAa; xxxAa = data.elementsOne[0].Amount; oldxxxB = xxxBb; xxxBb = data.elementsTwo[0].Amount; }
            //I HAVE 20 IF BLOCK INSIDE OF IT.  
        }

जब मैं बेहतर परिणाम प्राप्त करने की कोशिश कर रहा हूं, तो मुझे लगा कि मैं इसे नीचे की तरह कर सकता हूं, लेकिन परिणाम बदतर दिखेंगे।

    for (var i = 0; i < (Math.Min(data.elementsOne.Count(), 5)) || i < Math.Min(data.elementsTwo.Count(), 5); i++)
    {
        if (data.PairSymbol == "xxx") { oldxxxA = xxxAa; xxxAa = data.elementsOne[0].Amount; oldxxxB = xxxBb; xxxBb = data.elementsTwo[0].Amount; } 
        //I HAVE 20 IF BLOCK INSIDE OF IT.                          
    }

गलत क्या है ? किसी भी विचार मैं कैसे गति कर सकते हैं? (सबसे महत्वपूर्ण बात गति है, न ही स्मृति सोचो)।

पी एस। मैंने कुछ सुरक्षा समस्याओं के कारण कोड को बदल दिया है, सिंटैक्स त्रुटियों को ध्यान में नहीं रखा है, और तत्वOne.count = elementsTwo.count लगभग सभी समय समान हैं। मत सोचो कि लूप में केवल 5 आइटम हैं, बाहर एक और लूप है, इसकी निरंतर लूप है। मेरी अंग्रेजी के लिए खेद है

जवाब

1 l33t Aug 17 2020 at 17:53

प्रदर्शन के लिए, आपको निश्चित रूप से ifअपने छोरों में बयान देने से बचना चाहिए । ifब्रांचिंग का एक कारण है जिसका अर्थ है कि आप सीपीयू शाखा के भविष्यवक्ता के हाथों में हैं।

तो हाँ, तुम बहुत होगा की संभावना बेहतर प्रदर्शन देख अगर आप एक के बिना कुछ 20 छोरों है ifबयान है कि% मामलों में 5 की तरह सच हो जाएगा। कोशिश करो और देखो कि यह मदद करता है। इसके अलावा, Count()एक अतिरिक्त लूप लगाने के रूप में मूल्य को कैश करना सुनिश्चित करें ।