2008-12-11 20 views
12

Yahoo! UI Compressor, Dean Edwards Packer और jsmin के बीच, जिसके परिणामस्वरूप पदचिह्न और कम त्रुटियों के मामले में बेहतर परिणाम उत्पन्न होते हैं, जब obfuscating।कौन सा जावास्क्रिप्ट खनन पुस्तकालय बेहतर परिणाम उत्पन्न करता है?

उत्तर

3

बेहतर है, यहाँ एक सा व्यक्तिपरक है के बाद से वहाँ कई कारकों पर विचार करने (यहां तक ​​कि किए जाने के बावजूद आप सूची) कर रहे हैं:

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

मेरे सिफारिश परिणामों के आधार पर कोड आप कई कम्प्रेसर (एक स्वचालित तुलना उपकरण जैसे CompressorRater में मदद करता है ...) के माध्यम से सेक करने का इरादा चलाने के लिए, और चयन करने के लिए है - परीक्षण करने के लिए, प्रोफ़ाइल को याद करना और बाद में वास्तविक पृष्ठ लोड समय की तुलना करें।

+0

यह आम तौर पर समय के प्रदर्शन के लिए एक अच्छा विचार है और प्रभाव को देखते हैं, लेकिन जेएसएमआईएन, डोजो श्रंकसेफ और यूयूआई कंप्रेसर के मामले में वे केवल फ़ाइल आकार को कम करते हैं (प्रतीकों को प्रतिस्थापित करते हैं, मृत कोड हटाते हैं) - वे संशोधित नहीं करते हैं व्यवहार। डीन एडवर्ड का पैकर प्रोसेसिंग समय बढ़ाता है। – orip

0

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

0

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

11

आर्थर ब्लेक द्वारा सर्वोत्तम कंप्रेसर की तुलना करने का एक शानदार तरीका The JavaScript CompressorRater है।

जीजीआईपी के साथ संपीड़न के बाद आप आमतौर पर रुचि रखते हैं (आपको संपीड़न करने के लिए अपने वेब सर्वर को कॉन्फ़िगर करना चाहिए)।

सर्वोत्तम परिणाम आमतौर पर YUI Compressor या Dojo ShrinkSafe से होते हैं। मतभेद इतने छोटे थे कि थोड़ी देर बाद मैंने तुलना करना बंद कर दिया और मैं बस यूयूआई कंप्रेसर का उपयोग करता हूं।

संपादित करें: मूल प्रश्न के बाद से इस सवाल से पूछा गया था, 2 नए मिनीफायर जारी किए गए हैं। वे आमतौर पर कम से कम उतने अच्छे होते हैं, अगर वाईयूआई कंप्रेसर से बेहतर नहीं होते हैं।

  • Google का Closure Compiler। एक आक्रामक advanced optimization मोड शामिल है जो कभी-कभी लागू होता है।
  • माइक्रोसॉफ्ट के अजाक्स minifier (खोज this page "minifier" के लिए)

संपादित करें 2:

2

निश्चित रूप से आधिकारिक 1.5 रिहाई के लिए jQuery टीम द्वारा चुना Dojo Shrinksafe देखें। इसे हाल ही में फिर से बनाया गया था और स्पष्ट रूप से प्रदर्शन में सुधार हुआ है।

+0

+1 क्योंकि मुझे इसे याहू की तरह डाउनलोड नहीं करना है। –

0

कोडप्लेक्स पर YUICompress for .NET (जिसमें टीएफएस के लिए एक बिल्ड कार्य भी शामिल है) का एक बंदरगाह भी है।

1

यह एक पुराना प्रश्न है और Google Closure Compiler तब मौजूद नहीं था। मैंने अभी तक इसका उपयोग नहीं किया है, लेकिन यह वास्तव में अच्छा लगता है।

2

पूर्ण प्रकटीकरण, मैं इसके पीछे हूं: http://www.toptensoftware.com/minime जो खनन, obfuscation और लिंट शैली जांच का एक उचित सेट करता है। वर्तमान में यह यूई की तुलना में छोटे उत्पादन का उत्पादन करता है, क्लोजर के रूप में काफी अच्छा नहीं है।

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