2015-06-13 7 views
5

मुझे आश्चर्य है कि समान संकेतों से पहले और बाद में रिक्त स्थान को हटाकर प्रदर्शन में कोई अंतर है। इन दो कोड स्निपेट की तरह।बराबर संकेतों में रिक्त स्थान

पहले

int i = 0; 

दूसरा

int i=0; 

मैं पहली बार एक का उपयोग कर रहा है, लेकिन जो HTML/जावास्क्रिप्ट सीख रहा है मेरे दोस्त ने मुझे बताया कि मेरी कोडिंग अक्षम है। क्या यह एचटीएमएल/जावास्क्रिप्ट में सच है? और क्या यह प्रदर्शन में एक बड़ा टक्कर है? क्या यह सी ++/सी # और अन्य प्रोग्रामिंग भाषाओं में भी समान होगा? और इंडेंट के बारे में, उन्होंने कहा कि टैब 3 स्पेस बेहतर है। लेकिन मैं पहले से ही इस तरह कोड करने के लिए इस्तेमाल किया था। तो मैं सिर्फ यह जानना चाहता हूं कि वह सही है या नहीं।

+2

_file size_ में एक अंतर है (जावास्क्रिप्ट के लिए सबसे महत्वपूर्ण), लेकिन प्रदर्शन नहीं। सी # में कोड किसी भी तरह से जब्त हो जाता है, इसलिए रिक्त स्थान या इससे कोई फर्क नहीं पड़ता। –

+4

आपका दोस्त बहुत गुमराह है। साथ ही, https://en.wikipedia.org/wiki/Minification_(programming) – Pubby

+0

देखें, इसलिए जावास्क्रिप्ट में, यह पूरी स्क्रिप्ट को लोड/पढ़ने में मामूली गति देगा? –

उत्तर

7

आपका मित्र थोड़ा गुमराह है।

कोड में अतिरिक्त रिक्त स्थान जेएस फ़ाइल के आकार में थोड़ा अंतर डालेंगे जो डाउनलोड की गति में थोड़ा अंतर डाल सकता है, हालांकि अगर यह ध्यान देने योग्य या सार्थक था तो मुझे आश्चर्य होगा।

अतिरिक्त रिक्त स्थान फ़ाइल को पार्स करने के लिए समय में सार्थक अंतर बनाने की संभावना नहीं है।

फ़ाइल को पार्स करने के बाद, अतिरिक्त रिक्त स्थान निष्पादन गति में कोई फर्क नहीं पड़ता क्योंकि वे पार्स किए गए कोड का हिस्सा नहीं हैं।


तुम सच में डाउनलोड का अनुकूलन या गति पार्स करने के लिए चाहते हैं, जिस तरह से है कि ऐसा करने के लिए सबसे पठनीय सबसे अच्छा रख-रखाव के लिए संभव तरीके से अपने कोड लिखने और फिर तैनात कोड के लिए एक minimizer उपयोग करने के लिए है और यह एक है कई वेब साइटों द्वारा मानक अभ्यास। यह आपको दोनों दुनिया के सर्वश्रेष्ठ बनाएगा - रखरखाव योग्य, पठनीय कोड और न्यूनतम तैनात आकार।

एक मिनीमाइज़र सभी अनावश्यक दूरी को हटा देगा, चर के नामों को छोटा करेगा, टिप्पणियां हटा देगा, पतन रेखाएं इत्यादि ... सभी को कोड के रन-टाइम अर्थ को बदले बिना जितना संभव हो सके तैनात कोड बनाने के लिए डिज़ाइन किया गया है सब।


सी ++ एक संकलित भाषा है। इस प्रकार, केवल कंपाइलर जो डेवलपर उपयोग करता है, कोई अतिरिक्त रिक्त स्थान देखता है (टिप्पणियों के साथ ही)। कोड को मूल कोड में संकलित करने के बाद उन रिक्त स्थान चले गए हैं जो अंत उपयोगकर्ता को मिलता है और चलता है। इसलिए, लाइन में तत्वों के बीच रिक्त स्थान के बारे में समस्याएं सी ++ के लिए बिल्कुल लागू नहीं होती हैं।

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

+0

आपकी व्याख्या के लिए धन्यवाद। : डी –

2

प्रदर्शन में कोई (सी #, सी ++, जावा) अंतर कम (जावास्क्रिप्ट) है। विशेष रूप से संकलित भाषाओं में, स्रोत कोड सटीक उसी मशीन कोड में संकलित होता है।

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

+1

मुझे लगता है कि इसमें तनाव करने की कुंजी संकलित बनाम पार्स किया गया है। जब सी #, सी ++, जावा और ऐसी भाषाएं संकलित की जाती हैं तो वे अब .cs, .cpp, आदि स्रोत फ़ाइलों का उपयोग नहीं करते हैं जबकि .js फ़ाइलों को पार्स किया जाता है और रनटाइम के दौरान पढ़ा जाता है। जेएस न्यूनीकरण में प्रदर्शन लाभ पार्सटाइम/डाउनलोड समय में है। – CalebB

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