array
के बजाय Vector.<>
का उपयोग करने के पेशेवर और contras क्या हैं?वेक्टर। <> बनाम सरणी
उत्तर
- प्रदर्शन: सरणी तत्व पहुंच
अपने प्रतिबंधों के कारण के रूप में, एक वेक्टर किसी सरणी उदाहरण जिसका तत्वों एक भी वर्ग के सभी उदाहरण हैं पर दो प्राथमिक लाभ है और एक ऐरे का उपयोग करते समय वेक्टर उदाहरण का उपयोग करते समय पुनरावृत्ति बहुत तेज होती है।
- सुरक्षा टाइप करें: सख्त मोड में संकलक डेटा प्रकार की त्रुटियों की पहचान कर सकता है जैसे वेक्टर को गलत डेटा प्रकार का मान असाइन करना या वेक्टर से मूल्य पढ़ने पर गलत डेटा प्रकार की अपेक्षा करना। नोट, हालांकि, कि वेक्टर में मान जोड़ने के लिए पुश() विधि या unshift() विधि का उपयोग करते समय, तर्कों के डेटा प्रकार संकलित समय पर चेक नहीं किए जाते हैं लेकिन रन टाइम पर चेक किए जाते हैं।
धन्यवाद अरनो! ये केवल पेशेवर हैं, क्या कुछ contras भी हैं? वेक्टर के बेहतर प्रदर्शन के बारे में: कुछ लोग इसके विपरीत रिपोर्ट करते हैं: http://impossiblearts.com/blog/2008/06/18/fp10-vector-vs-array/comment-page-1/ और http://bugs.adobe.com/jira/browse/FP-1802 –
यह निश्चित रूप से ऐसा लगता है कि प्रदर्शन वैक्टरों के लिए सबसे अच्छा बिक्री बिंदु नहीं हो सकता है। फिर फिर, किसी को इस तथ्य के लिए पहले ही इस्तेमाल किया जाना चाहिए कि फ्लेक्स फ्रेमवर्क एसडीक्स और फ्लैश प्लेयर दोनों बग मुक्त होने से बहुत दूर हैं। –
बड़े मतभेद मेरी राय में हैं कि यह बहुत छोटी है इसलिए छोटी छोटी गाड़ी और हर किसी के पास एफपी 10 नहीं है। माइक चेम्बर्स के इस परीक्षण में: http://www.mikechambers.com/blog/2008/08/19/using-vectors-in-actionscript-3-and-flash-player-10/ अपने परीक्षण में एक ह्यूग नहीं है 2 संख्याओं के बीच अंतर। यदि आपकी सूची बड़ी सूचियों पर भारी लटक रही नहीं है तो मैं ऐरे के साथ जाऊंगा। – Arno
प्रो: वेक्टर ऐरे से तेज़ है - उदा। इस देखें: Faster JPEG Encoding with Flash Player 10
कॉन्ट्रा: वेक्टर FP10 आवश्यकता है, और http://riastats.com/ के अनुसार उन में से कुछ 20% अभी भी FP9
इस टिप्पणी के समय, गैर-पता चला संस्करण + फ्लैश 9 घड़ियों 4% – ADB
पर गैर-पता चला और फ्लैश 9 घड़ी आज 5% से कम है। –
अनुसार फ़्लैश प्लेयर पैठ वेबसाइट का उपयोग कर रहे यह एक छोटे से अधिक है। लगभग 85%
वाहक तेजी से कर रहे हैं। हालांकि अनुक्रमिक पुनरावृत्ति the fastest thing seems to be linked-lists के लिए।
वेक्टर बिटमैप संचालन के लिए भी उपयोगी हो सकते हैं (BitmapData.setVector, BitmapData.lock और अनलॉक भी देखें)।
टिप्पणियों में पहले उल्लिखित लिंक सूची सूची गलत तरीके से लिखी गई है, हालांकि यह विषम नोड्स को छोड़ देती है और इसके कारण केवल उसी डेटा की आधा राशि होती है। कोई आश्चर्य नहीं कि वह इतने अच्छे परिणाम प्राप्त कर सकता है, सही कोड के साथ भी तेज हो सकता है, लेकिन समान% अंतर नहीं। लूप वर्तमान = current.next एक बार बहुत अधिक सेट करता है (दोनों लूप और लूप-हालत में) प्रत्येक पुनरावृत्ति जो उस व्यवहार का कारण बनता है।
एक साइड नोट के रूप में, इसे flex4 flashplayer10 टैग किया जाना चाहिए। –