संभव डुप्लिकेट:
What is the relative performance difference of if/else versus switch statement in Java?"स्विच" से धीमा "अगर" धीमा क्यों है?
निम्नलिखित दो तरीकों को देखते हुए:
public static int useSwitch(int i) {
switch (i) {
case 0:
return 1;
default:
return 0;
}
}
public static int useIf(int i) {
if (i == 0)
return 1;
return 0;
}
परीक्षण से पता चलता है कि switch
मामूली तेजी कार्यान्वित (मेरी मशीन पर प्रति कॉल 1.4 नैनोसेकंड) if
संस्करण से अधिक।
मैं हमेशा मानना था कि एक स्विच के लाभ में लात नहीं था जब तक कम से कम कुछ ifs
बचा जा सकता है,
क्यों switch
एक भी if
की तुलना में तेजी है?
क्या आप जानते हैं कि वे संकलित कैसे दिखते हैं? शायद आप वहां अपना जवाब पा सकते हैं। – user1306322
@ user1306322- यह जांचने के लिए भी गहराई से देखना होगा कि JVM उस बाइटकोड को कैसे व्याख्या या संकलित कर रहा था। पहला कोड शायद 'लुकअपविच' या 'टेबलविच' निर्देश का उपयोग करेगा, जबकि दूसरा सामान्य कूद का उपयोग करेगा। यह उन्हें तेजी से काम करने के लिए जेवीएम तक है। – templatetypedef
क्या आप अपना बेंचमार्किंग कोड पोस्ट कर सकते हैं? –