2009-12-30 18 views
10

मैंने सुना है कि जावा में ऑपरेटर का उदाहरण एक प्रदर्शन मुद्दा है,जावास्क्रिप्ट में उदाहरण ऑपरेटर का उपयोग एक प्रदर्शन समस्या है?

क्या यह जावास्क्रिप्ट के लिए भी सच है (आईई 6, आई 7, आईई 8, एफएफ, क्रोम, सफारी इत्यादि)? प्रामाणिक कागजात के लिए कोई भी लिंक उपयोगी होगा।

+0

आप कुछ निश्चित खोज रहे हैं, मैं देखता हूं। लेकिन "प्रदर्शन मुद्दा" एक निश्चित सवाल नहीं है। इसके विपरीत, यह बहुत अस्पष्ट है। साथ ही, प्रदर्शन प्रश्नों को फ़ॉर्म में पूछा जाना चाहिए "क्या ए या बी को अधिक मेमोरी/रन टाइम/अन्य मापन योग्य मात्रा की आवश्यकता होती है", जहां ए और बी अलग-अलग चीजें हैं जो एक ही परिणाम उत्पन्न करती हैं। तो आपको उदाहरण के ऑपरेटर की तुलना किसी और चीज से करने की आवश्यकता होगी जो वही काम करता है। –

+0

हम्म, मेरा प्रश्न सही तरीके से तैयार नहीं किया गया था। –

+0

मुझे लगता है कि आप एक बेंचमार्क चला सकते हैं जो आपको बताता है कि उदाहरण के ऑपरेटर ने निष्पादित करने के लिए 7 माइक्रोसॉन्ड (उदाहरण के लिए यादृच्छिक रूप से चुना गया नंबर) लिया। लेकिन फिर आपको खुद से पूछना होगा कि इसका मतलब कुछ वास्तविक कोड के संदर्भ में क्या था। –

उत्तर

1

यह अब जावा के लिए सच नहीं है - see here

जावास्क्रिप्ट के लिए, मुझे इस पर चर्चा करने वाले कोई भी लेख नहीं मिल सका, लेकिन मुझे संदेह है कि उदाहरण किसी भी प्रदर्शन के कारण होगा। यदि आपको इसका उपयोग करने की आवश्यकता है, तो मैं कहूंगा कि इसके लिए जाएं, और फिर केवल तभी पुनर्विचार करें जब आप प्रदर्शन समस्याओं में भाग ले रहे हों।

+0

यहां तक ​​कि मुझे कोई भी लेख नहीं मिला जो कहता है, लेकिन मुझे लगता है कि इसका असर हो सकता है। अभी भी एक निष्कर्ष/बेंचमार्क परिणाम की प्रतीक्षा कर रहा है ... –

1

आप कालेब के लिंक से जुड़े this one के समान आसानी से अपना खुद का जावास्क्रिप्ट बेंचमार्क बना सकते हैं।

+0

हम्म। मैं भी अपना खुद का परीक्षण कर रहा हूं, लेकिन मैं अभी भी इस मुद्दे पर एक लेख या कागज का उल्लेख करना पसंद करूंगा। –

1

मैं ऑपरेटर के उदाहरण के प्रदर्शन के बारे में चिंता नहीं करता, क्योंकि जावास्क्रिप्ट स्वयं ही प्रदर्शन समस्याओं का कारण नहीं है। डोम मैनिपुलेशन आमतौर पर अधिक समय लेते हैं। हालांकि, अगर आपको भारी इस्तेमाल किए गए लूप में उदाहरण की आवश्यकता है, तो मैं फ़ायरबग प्रोफाइलर का उपयोग करके इसे प्रोफाइल करने का सुझाव दूंगा।

+1

यदि आप इसे फ्रंटेंड जावास्क्रिप्ट मानते हैं। मान लीजिए कि यह Node.js है ... – josiah

0

पूर्व परिपक्व अनुकूलन सभी बुराइयों का मूल कारण है। इसे आज़माएं और यदि आप किसी भी प्रदर्शन के मुद्दों में भाग लेते हैं, तो समस्या को हल करने का प्रयास करें।

कुछ ऐसा हल करने की कोशिश न करें जो आपके लिए पहली जगह में कोई समस्या न हो।

+11

मैं वास्तव में यहां टिप्पणियों का सम्मान करता हूं, लेकिन, मैं देखता हूं कि आप में से अधिकांश लोग इस सवाल का जवाब देने में उत्सुक नहीं हैं। मैं इसे ज्ञान के दृष्टिकोण से पूछ रहा हूं, न कि एक परियोजना बिंदु। हो सकता है कि मैंने अपना प्रश्न सही नहीं बनाया है। –

+3

यह एक टिप्पणी के रूप में अच्छा होगा, लेकिन एक जवाब के रूप में नहीं। – bnieland

13

संक्षेप में: यह ब्राउज़र निर्भर है।

अधिक विस्तृत: मुझे यह जेएसपीआरएफ परीक्षण मिला है: http://jsperf.com/instanceof-performance/2 किसी ऑब्जेक्ट में मौजूदा/गायब संपत्ति के लिए एक बूलियन चेक बनाम एक जावास्क्रिप्ट उदाहरण की तुलना कर रहा है।

समग्र परिणाम (नमूने की छोटी संख्या से सावधान रहें) यह है कि क्रोम में दोनों विधियां उदाहरण के लिए लाभ के समान हैं। एफएफ में, हालांकि, संपत्ति की जांच ऑपरेटर के उदाहरण से तेज है। अप्रैल 2017 अपडेट करें: जैसा कि @ngryman ने बताया: हाल ही में एफएफ और क्रोम संस्करणों में, दोनों संपत्ति जांच कर इंस्टेंसियोफ की तुलना में काफी तेज़ लगता है।

किसी परीक्षण के साथ उस परीक्षण को विस्तारित करना दिलचस्प होगा जैसे obj.type == 'MyClass' जैसे स्ट्रिंग तुलना इस विषय पर एक मजबूत प्रभाव डालती है।

+2

क्रोम में 2017 में, संपत्ति की जांच तेज है। – ngryman

+0

@ngryman इसे इंगित करने के लिए धन्यवाद। मैंने अपना जवाब अपडेट कर लिया है। –

संबंधित मुद्दे