2011-02-10 11 views
5

बस सोच रहा है, अगर आमतौर पर जार फ़ाइलों को संपीड़ित करने का एक अच्छा विचार है जिसे डेस्कटॉप एप्लिकेशन (जार तक कोई नेटवर्क एक्सेस नहीं) के साथ भेज दिया जाएगा, तो अगर डिकंप्रेशन फ़ाइल io से बड़ा प्रभाव डालेगा।डेस्कटॉप अनुप्रयोगों के लिए जार फ़ाइलों को संपीड़ित किया जाना चाहिए?

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

+0

जावा जार का आंतरिक प्रारूप एक ज़िप संग्रह है। या तो फाइल प्रकार के साथ उपकरण का सेट इस्तेमाल किया जा सकता है। फ़ाइलों को संकुचित किया जा सकता है (तेज डिस्क का उपयोग) या असंपीड़ित (कम सीपीयू)। उन्हें छोड़कर उन्हें छोड़ दें। – BillThor

उत्तर

2

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

जबकि आप इसे कर रहे हैं, आप भी विभिन्न संपीड़न स्तर के प्रभाव (jar आदेश विकल्पों के माध्यम से) और pack200


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

1

लगभग किसी भी उचित डेस्कटॉप स्थिति में, डिस्क आईओ की लागत संपीड़न की लागत से अधिक है। यह लगभग निश्चित रूप से फ़ाइलों को संपीड़ित करने के लिए एक जीत होगी।

उस ने कहा, एक जेएआर फ़ाइल पहले ही संपीड़ित है। संदेहजनक चीजों को आम तौर पर प्रयास के लायक नहीं है। तो मैं नहीं कहूंगा, अपनी जेएआर फाइलों को संपीड़ित न करें क्योंकि वे पहले ही संपीड़ित हैं।

+3

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

+1

* "लगभग किसी भी उचित डेस्कटॉप स्थिति में, डिस्क IO की लागत संपीड़न की लागत से अधिक है। यह निश्चित रूप से फ़ाइलों को संपीड़ित करने के लिए एक जीत होगी।" * - मुझे यकीन नहीं है कि यह सच है। बहुत सारी मेमोरी वाले लिनक्स बॉक्स पर, ओएस द्वारा फ़ाइलों को स्मृति में कैश किया जाएगा। पढ़ें गति (सिद्धांत में) स्मृति-से-स्मृति प्रतिलिपि की गति तक पहुंच सकती है। –

+0

मुझे विश्वास नहीं है कि फाइलें शुरुआत में कैश की गई हैं, लेकिन जब ऐप ने कुछ कक्षाएं लोड की हैं तो फाइल डेटा ब्लॉक कैश में होंगे। कम से कम ब्लॉक फाइलों के साथ कवर ब्लॉक। – Daniel

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