2012-08-13 15 views
7

क्या कोई जानता है कि अध्ययन किए गए हैं जो जावास्क्रिप्ट पुस्तकालयों (उनके डाउनलोड समय के स्पष्ट के अलावा) का उपयोग करने के प्रदर्शन ओवरहेड को केवल मूल जावास्क्रिप्ट का उपयोग करके दिखाते हैं? इन दिनों पुस्तकालय इतने विशाल हैं और मैं उत्सुक था।जावास्क्रिप्ट पुस्तकालयों का प्रदर्शन ओवरहेड

मेरे कंप्यूटर विज्ञान की डिग्री से ऐसा लगता है कि इसमें विकास एन होना चाहिए। (दूसरे शब्दों में रैखिक)।

कंप्यूटर विज्ञान शर्तों में यह खतरनाक नहीं है लेकिन यह वास्तव में पेज लोडिंग समय और पृष्ठ प्रदर्शन को मिलीसेकंड में कैसे प्रभावित करता है? मुझे पता है कि सीपीयू एक मुद्दा है, रैम, और इसी तरह। लेकिन क्या कोई परीक्षण किया गया है जो इस तरह के चीजों को गेज कर सकता है?

मुझे पता है कि एक और कारक है पुस्तकालयों को अक्सर वही काम करने के लिए अनुकूलित किया जाता है जो आप कम अनुकूलित फैशन में हाथ से कोडिंग करेंगे लेकिन पुस्तकालयों के ऊपर की ओर बढ़ना होगा और उस कार्यक्षमता का उपयोग नहीं किया जाएगा।

संपादित करें: मैं इस पाया गया कि अच्छी तरह से मेरे सवाल का जवाब करने के लिए भले ही यह कुछ और के बारे में बाहर शुरू कर दिया लगता है: When to use Vanilla JavaScript vs. jQuery?

"जैसा कि टिप्पणियों का कहना है के लिए जल्दी कर रहे हैं (और मैं 100% के साथ सहमत) उपरोक्त बयान बेंचमार्किंग कोड का संदर्भ लें। एक 'मूल' जावास्क्रिप्ट समाधान (मान लीजिए कि यह अच्छी तरह लिखा गया है) एक jQuery समाधान से बेहतर प्रदर्शन करेगा जो लगभग हर मामले में एक ही चीज़ को पूरा करता है (मुझे अन्यथा एक उदाहरण देखना अच्छा लगेगा)। jQuery करता है विकास का समय बढ़ाएं, जो एक महत्वपूर्ण लाभ है जिसका मेरा मतलब डाउनप्ले नहीं है। यह आसानी से पढ़ने के लिए आसान है, कोड का पालन करने में आसान है, जो कुछ डेवलपर्स से अधिक है अपने आप को बनाने में सक्षम हैं।

मेरी राय में, उत्तर उस चीज़ पर निर्भर करता है जिसे आप प्राप्त करने का प्रयास कर रहे हैं। यदि, जैसा कि मैंने प्रदर्शन लाभों के संदर्भ के आधार पर माना है, तो आप अपने आवेदन से सबसे अच्छी संभव गति के बाद हैं, फिर जब भी आप $() कॉल करते हैं तो jQuery का उपयोग ओवरहेड का उपयोग करते हैं। यदि आप पठनीयता, स्थिरता, क्रॉस ब्राउज़र संगतता इत्यादि के लिए जा रहे हैं, तो निश्चित रूप से jQuery 'मूल' जावास्क्रिप्ट पर jQuery का पक्ष लेने के कारण हैं।

+0

यह एक सामान्य सवाल है, मुझे नहीं लगता कि इसका उत्तर दिया जा सकता है। प्रत्येक लाइब्रेरी के लिए ओवरहेड अलग है, और यह निर्भर करता है कि आप उनके साथ क्या कर रहे हैं। –

+0

शायद यह है, लेकिन मैं उम्मीद कर रहा था कि किसी को भी विभिन्न प्रकार के उपयोगों का परीक्षण करने वाले किसी भी अध्ययन के बारे में पता था जो एक बड़ी तस्वीर दिखाने की कोशिश करेगा। मेरा अंतर्ज्ञान यह है कि पुस्तकालयों में हमेशा अतिरिक्त ओवरहेड होता है लेकिन विकास और रखरखाव कम महंगा होता है। – Wolfe

+0

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

उत्तर

1

यह एक अच्छा सवाल है! लाइब्रेरी के डाउनलोड समय के आगे, अधिकांश ढांचे बहुत अधिक नहीं कर रहे हैं, जिसका अर्थ है कि वे पेज दिखाने या कुछ देरी में देरी नहीं करते हैं।

JQuery की $ .css विधि, जो स्टाइल तत्वों को आसान बनाता है, आपको एक प्रदर्शन बाधा बन सकती है यदि आपको इसे अक्सर ट्रिगर करने की आवश्यकता होती है और स्टाइल ऑब्जेक्ट पर सीधे ऑपरेटिंग की आवश्यकता होती है।

मेरी राय सादा जावास्क्रिप्ट के साथ और अधिक करने के लिए बेहतर है, जितना अधिक आपको उच्च प्रदर्शन प्राप्त करना होगा। AJAX अनुरोधों जैसे सामान्य सामानों के लिए, मेनू-लुप्तप्राय और इतने सारे ढांचे के प्रदर्शन पर मैंने कभी भी उपयोग किया है, और कोडिंग स्वयं बदले में गतिशील है।

+0

आप तकनीकी रूप से सही होने के बाद से जवाब दे रहे हैं :) हालांकि कुछ अध्ययन देखना अच्छा होगा। – Wolfe

+1

http://www.amazon.com/Supercharged- जावास्क्रिप्ट- ग्राफिक्स-canvas-jQuery/dp/1449393632/ref=sr_1_1?ie=UTF8&qid=1344868973&sr=8-1&keywords=javascript+graphics इस पुस्तक में इस अध्ययन में से कुछ हैं आप – philipp

+0

देख रहे हैं महान धन्यवाद :) – Wolfe

0

यहां अध्ययन है जो जेएस लाइब्रेरी और वेनिला जेएस के साथ प्रदर्शन के आधार पर किया गया है पाठ

http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly

जोड़कर और मैं कह सकता हूँ, venilla जावास्क्रिप्ट हमेशा तेजी से पुस्तकालयों की मदद से कुछ प्रदर्शन की तुलना में है का उपयोग कर। लेकिन अगर आप कुछ के विकास के लिए समय बचाने के लिए करना चाहते हैं, यह अच्छा होगा अगर आप कुछ का उपयोग लाइब्रेरी जो आप अच्छे हैं।

+0

क्या मुझे डाउनवोट का कारण पता हो सकता है? – Shreedhar

+2

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

+0

@JamesMcLaughlin मैं हमेशा नहीं कह रहा हूं कि हमें वेनिला जेएस लिखना चाहिए, या जेएस पुस्तकालयों का सही उपयोग नहीं करना चाहिए? – Shreedhar

1

यह निर्भर करता है ई पुस्तकालय पर ntirely। हालांकि jQuery जैसी लाइब्रेरीज़ के लिए शायद इससे कोई फर्क नहीं पड़ता: प्रदर्शन की बाधा शायद jQuery नहीं है, Google एक सीडीएन-होस्टेड jQuery प्रदान करता है, इसलिए इसे पृष्ठ लोड समय पर भी प्रभाव नहीं पड़ता है, और उपयोग की आसानी जो jQuery आपको दूर, दूर देता है मामूली प्रदर्शन प्रभाव से अधिक है। लाइब्रेरी प्रदर्शन को बढ़ावा देने के लिए असामान्य या कठिन तकनीकों का भी उपयोग कर सकते हैं, इसलिए लाइब्रेरी का उपयोग करना कभी-कभी आप जो भी लिखेंगे उससे तेज हो सकते हैं। वास्तव में कोई अंतिम जवाब नहीं है।

+0

एकमात्र चीज जो मुझे Google सीडीएन तर्क के बारे में पसंद नहीं है, लोगों को लगता है कि यह पहले से ही हर साइट पर है और यह उसी तरीके से लागू किया गया है और उसी पुस्तकालय के उसी संस्करण के लिए भी लागू किया गया है .. यह सब कुछ बहुत मूर्ख लगता है। मुझे यकीन है कि यह कुछ के लिए समय बचाता है लेकिन आप नहीं जानते कि यह पहला भार है या नहीं और यह निश्चित रूप से पेज लोड समय को पूरी तरह से अस्वीकार नहीं करता है। – Wolfe

1

हालांकि आपके प्रश्न का सीधा जवाब नहीं होने पर, इस प्रश्न का मेरा उत्तर: "What are some empirical technical reasons not to use jQuery?" और अन्य उत्तरों और टिप्पणियां आपके शोध के लिए दिलचस्प हो सकती हैं क्योंकि उनमें से बहुत से जावास्क्रिप्ट पुस्तकालयों का उपयोग करने और उपयोग करने के प्रदर्शन के मुद्दों के बारे में बात नहीं करते हैं और चौखटे। मुझे उम्मीद है यह मदद करेगा।

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