java - Does switch case order affect speed? -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 8 जवाब
मैंने कोशिश की है google
मेरे पास बहुत बड़ा स्विच है, और कुछ मामलों स्पष्ट रूप से अधिक सामान्य दूसरों की तुलना में हैं।
तो मैं चाहूंगा पता है अगर आदेश सचमुच के रूप में रखा गया है और "ऊपरी" मामलों को "निचले" से पहले परीक्षण किया जाता है, इसलिए इसका मूल्यांकन तेजी से किया जाता है।
मैं अपना आदेश जारी रखना चाहता हूं, लेकिन अगर यह गति , फिर शाखाओं की पुनर्व्यवस्था एक अच्छा विचार होगा।
उदाहरण के लिए:
स्विच (चिह्न) {case आयन। नल: वापसी नल; मामले आयन। बूलीयन: वापसी पढ़ो बुलियन (); मामला आयन। बीईटीई: वापस पढ़िए बाइट (); मामला आयन। सीएचएआर: पढ़ना खरीदार (); मामला आयन। हार्ट: वापसी पढ़ना लघु (); मामले आयन। आईएनटी: वापसी readInt (); मामला आयन। लंबी: पढ़ें पढ़ें लाँग (); मामले आयन। फ्लोएट: रिटर्न रीफ्लॉट (); मामले आयन। DOUBLE: वापस पढ़ें डबल (); मामले आयन। खतरा: वापस पढ़ें स्ट्रिंग (); मामले आयन। बुलियन_अरे: वापस पढ़ो बुलियन (); मामले आयन। BYTE_ARRAY: रिटर्न readBytes (); मामला आयन। CHAR_ARRAY: वापसी पढ़ा शब्द (); मामला आयन। SHORT_ARRAY: वापसी पढ़ शॉर्ट्स (); मामले आयन। INT_ARRAY: पढ़ें readInts (); मामले आयन। LONG_ARRAY: रिटर्न रीड लाँग (); केस आयन। FLOAT_ARRAY: पढ़ें पढ़ें फ्लॉइट्स (); मामले आयन। DOUBLE_ARRAY: वापसी पढ़ें डबल्स (); मामले आयन.STRING_ARRAY: वापसी पढ़ो स्ट्रिंग्स (); डिफ़ॉल्ट: नए दूषित डेटा एक्स्प्शन ("अमान्य चिह्न:" + चिह्न) को फेंक दें; }
एक स्विच स्टेटमेंट में कोई प्रभाव नहीं पड़ता।
जावा बाइटकोड स्पेक को देखकर,
स्विच या तो
lookupswitch या
टेबलविच निर्देश पर संकलित किया जा सकता है, एक
int पर स्विच कर रहा है । एक
lookupswitch हमेशा क्रमबद्ध क्रम में संभावित मूल्यों के साथ संकलित किया जाता है, इसलिए कोड में स्थिरांक को पुन: क्रम देने से कोई फर्क नहीं पड़ता, और एक
tableswitch में संभवतः कूदता है रिश्तेदार
विवरण देखें और विवरण के लिए।
Comments
Post a Comment