का उपयोग कर रहा हूं तो मैंने ग्रोवी के @ कॉम्पाइलस्टैटिक का उपयोग करना चाहिए, मैंने "What's new in Groovy 2.0" के माध्यम से पढ़ा है और मैं @ कॉम्पाइल स्टेटिक का उपयोग करने के बारे में थोड़ा उलझन में हूं। लेख में उल्लेख किया गया है कि @CompileStatic
एनोटेशन उन डेवलपर्स के लिए जोड़ा गया था जो Java7 के invoke गतिशील भाग का लाभ लेने में सक्षम नहीं थे।यदि मैं जावा 7
तो डेवलपर्स प्रदर्शन में सुधार के लिए देख ग्रूवी 2.0 में ज्यादा परिवर्तन नहीं देखना होगा, अगर वे सौभाग्य से JDK 7 पर चलाने के लिए सक्षम नहीं हैं, ग्रूवी विकास दल सोचा उन डेवलपर्स दिलचस्प प्रदर्शन को बढ़ावा देने, दूसरे के बीच हो सकता है टाइप चेक कोड को स्थिर रूप से संकलित करने की इजाजत देकर फायदे।
मेरे सवाल है, अगर मैं JDK 7 उपयोग कर रहा हूँ और मैं --indy
फ्लैग जोड़ने के निर्देशों का पालन करें, मैं @CompileStatic
जोड़ने के लिए कुछ प्रदर्शन बढ़ जाती है को देखने के लिए की जरूरत है? This blog सुझाव देता है कि मैं चाहता हूं, लेकिन मुझे यकीन नहीं है कि उसने सही तरीके से संकलित किया है कि उसने ग्रहण के भीतर किया था।
अद्यतन: फिबोनैकी कोड के विभिन्न क्रमपरिवर्तन चलाते समय आंकड़े यहां दिए गए हैं।
> groovy --indy FibBoth.groovy
..........Fib (non-static indy): 1994.465
..........Fib (static indy): 529.197
> groovy FibBoth.groovy
..........Fib (non-static): 1212.788
..........Fib (static): 525.671
नोट: यह प्रश्न अब थोड़ा उलझन में प्रतीत होता है कि मैं समझता हूं कि विशेषताएं स्वतंत्र हैं। चूंकि प्रश्न के आधार पर नोट्स से भ्रम के आसपास है जो मुझे लगता है कि दो विशेषताएं संबंधित थीं, मुझे लगता है कि यह समझ में आता है कि प्रश्न शब्द बदलने और स्वीकार किए गए उत्तर को मतभेदों की व्याख्या करने की अनुमति नहीं है।
अच्छा जवाब। रिलीज में शब्द से मुझे जो हिस्सा याद आया वह यह है कि वे स्वतंत्र विशेषताएं हैं। तो अगर जावा 7 के साथ -इंडी का उपयोग करते हुए भी, कंपाइलस्टैटिक एक पेर्फ बूस्ट दे सकता है (जब तक कोड वास्तव में कंपाइलर द्वारा चेक किया जा सकता है)। हमने फिबोनाची के साथ इंडी और कंपाइलस्टैटिक के साथ विभिन्न क्रमपरिवर्तनों का त्वरित परीक्षण किया और निम्नलिखित पाया: – Scott