2010-08-26 15 views
14

मैं सोच रहा था कि जावा वर्चुअल मशीन के छेड़छाड़ के लिए जार फ़ाइल के आकार का कोई प्रभाव है या नहीं?क्या एक जार फ़ाइल का आकार JVM के प्रदर्शन को प्रभावित करता है?

क्या ऐसा कोई बिंदु होने जा रहा है जहां जार फ़ाइल बहुत बड़ी हो जाए कि JVM प्रभावी ढंग से कार्य नहीं कर पाएगा?

+0

हालिया और संबंधित: http://stackoverflow.com/questions/3314815/does-a-war-file-size-affect-in-some-way-the-plication-and-or-plication-server – JoseK

उत्तर

10

हां, जार फ़ाइल के आकार में प्रदर्शन पर प्रभाव पड़ता है। अधिक उपयुक्त सवाल यह है कि क्या इसका कोई महत्वपूर्ण प्रभाव पड़ता है? उस सवाल का जवाब नहीं है।

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

ऐसा कुछ नहीं है जिसके साथ आपको स्वयं को चिंता करने की आवश्यकता है। क्लासपाथ में जेएआर फाइलों को शामिल न करें जिनका उपयोग नहीं किया जा रहा है। अपनी प्रोजेक्ट जेएआर फ़ाइल में कोड का एक गुच्छा शामिल न करें जिसका उपयोग नहीं किया जा रहा है। मुझे अत्यधिक संदेह है कि आप JVM के प्रदर्शन को प्रभावित करने के लिए आवश्यक आकार के पास कहीं भी एक एप्लिकेशन बनायेंगे।

+0

युप , जार आकार के मामले में बहुत कम समय होते हैं। डेस्कटॉप ऐप वितरित करते समय शायद यह अधिक मायने रखता है, क्योंकि कोई भी साधारण प्रोग्राम के लिए 500 एमबी डाउनलोड नहीं चाहता है। सर्वर साइड ऐप के लिए, यह बहुत बड़ा "काम" लेगा ताकि यह बहुत बड़ा हो ... – bwawok

+1

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

+1

जार ब्लोट के सबसे बड़े अपराधी उद्यम/वेब अनुप्रयोग हैं, खासकर जब मैवेन के साथ बनाया गया है। निर्भरताओं की इतनी सारी निर्भरताओं और निर्भरताओं को खींच लिया जाता है कि मामूली आकार के ऐप के लिए 50 एमबी जार फ़ाइलों से अधिक असामान्य नहीं है। – locka

0

मेरी राय में प्रदर्शन बढ़ाने की कोशिश करते समय जार का आकार कारक नहीं है।

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

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