HTML / Javascript minification क्यों फायदेमंद है


14

जब HTML प्रोटोकॉल पहले से ही gzip डेटा कम्प्रेशन का समर्थन करता है तो HTML / Javascript मिनिफिकेशन क्यों फायदेमंद है?

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

मुझे लगता है कि कुछ जावास्क्रिप्ट मिनिमाइज़ेशन उपकरण केवल आकार को कम करने से अधिक करते हैं। उदाहरण के लिए, Google का क्लोजर कंपाइलर, फ़ंक्शन को इनलाइन करके और अन्य विश्लेषण करके कोड प्रदर्शन में सुधार करने की कोशिश करता है। लेकिन जावास्क्रिप्ट मिनिफिकेशन का प्राथमिक उद्देश्य आमतौर पर फ़ाइल का आकार कम करना है।

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

जब आप पहले से ही gzip संपीड़न के साथ फ़ाइल का आकार काफी कम कर रहे हैं, तो आप जावास्क्रिप्ट / HTML मिनिमाइज़ेशन से वास्तव में कितना प्रदर्शन प्राप्त करते हैं ?

जवाबों:


11

क्योंकि gzip कम्प्रेशन का अपना ओवरहेड (CPU) होता है। न्यूनतम पहला "लो हैंगिंग" कम्प्रेशन है जो सीपीयू हिट के बिना लागू किया जा सकता है।

ये महत्वहीन लग सकते हैं, लेकिन जल्द ही यह समझ में आ जाएगा कि पैमाने कब शामिल होंगे।

इसके अलावा, मिनिफिकेशन के साथ आपके पास गज़िप करने के लिए कम है।


3
क्या आधुनिक वेब सर्वर वास्तव में हर अनुरोध के लिए जावास्क्रिप्ट फ़ाइलों को जमा करेंगे? ऐसा लगता है कि एक सर्वर स्थिर gzipped सामग्री को कैश करेगा, क्योंकि यह बदलने की संभावना नहीं है।
आभा जू

@Aaberg यहां तक ​​कि, सर्वर पर अधिक कैश डेटा है। (नहीं है कि कैशिंग अच्छा नहीं है)
chills42

@ chilis42: सर्वर फ़ाइल-सिस्टम से पूर्व gzipped फ़ाइल की सेवा करने में सक्षम हैं, यदि यह समस्या है।
हर्बी

पैमाने के लिए +1। यदि आपके पास 10 उपयोगकर्ता हैं और एक दिन में 100 बार इसका विरोधाभास होता है। यदि आपको एक घंटे में 100k हिट करने की आवश्यकता है तो यह एक पर्याप्त बचत है।
सोयालेंटग्रे

2
कुछ मुझे बताता है कि पूर्ण पैमाने पर जावास्क्रिप्ट संकलक और आंतरिक प्रतिनिधित्व पर कई अनुकूलन रनिंग, यह सब अक्सर जावा में कार्यान्वित किया जाता है कम सीपीयू हेडहेड नहीं है
ओलेग वी। वोल्कोव

5

न्यूनतमकरण + gzip आम तौर पर बेहतर परिणाम देता है, क्योंकि gzip एक सामान्य एल्गोरिथ्म है, विशेष रूप से एक इनपुट या किसी अन्य के लिए अनुकूल नहीं है, जबकि minificator इसके बारे में सामग्री के बारे में जागरूक है और वह काम कर सकता है जो सामान्य संपीड़न एल्गोरिदम नहीं कर सकता है। यह नुकसानदेह भी हो सकता है (सोचें: टिप्पणियों और व्हाट्सएप को पूरी तरह से समाप्त करें - यह इस डेटा के लिए 100% संपीड़न है कि आप इसे कैसे हरा सकते हैं?), जबकि सामान्य संपीड़न नहीं कर सकता।


2

आपको बहुत अधिक प्रदर्शन लाभ नहीं मिल सकता है लेकिन फिर भी आप अपने बैंडविड्थ उपयोग को कम कर देंगे। यदि आप अपनी जेएस (और सीएसएस) फाइलों को मिनिफिकेशन (और सीएसएस स्प्राइट्स का उपयोग अनुरोधों की संख्या को कम करने के लिए) से कुछ केबी कर सकते हैं और आप एक दिन में 1000 उपयोगकर्ताओं की सेवा कर रहे हैं, तो एक महीने के बाद आप अपने बैंडविड्थ को काफी कम कर देंगे।


1
+1: न्यूनतम कुल में बचत के बारे में है। यह किसी व्यक्ति के अनुरोध को तेज़ करने में मदद कर सकता है, लेकिन समय के साथ बैंडविड्थ का उपयोग कम करना है।
जोएल एथरटन

1

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

इसके अलावा, मेरे पास इसे वापस करने के लिए कुछ भी वैज्ञानिक नहीं है, लेकिन मैं उम्मीद करूंगा कि खनन उपकरण शायद जावास्क्रिप्ट को gzip से बेहतर तरीके से संपीड़ित कर सकते हैं यदि किसी अन्य कारण के लिए minification उपकरण डोमेन विशिष्ट नहीं हैं और jzascript को बेहतर तरीके से संपीड़ित करने के लिए तैयार किया जा सकता है जबकि zzip एक सामान्य उपकरण है और बीच में समझौता करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.