2012-01-16 14 views
7

मैं एक साधारण एप्लिकेशन बना रहा हूं जो पाठ फ़ाइलों को पढ़ता है और प्रदर्शित करता है और उनके माध्यम से खोजता है।जावा जेडीके 32 बिट्स बनाम 64 बिट्स

मैं खुद से पूछ रहा हूं कि उपयोगकर्ता के लिए 32 और 64 बिट संस्करण का प्रस्ताव देने के लिए मेरे लिए कोई रूचि है या नहीं।

क्या 64 बिट संस्करण के साथ अधिक मेमोरी ढेर आकार तक पहुंचने में अंतर है या क्या कोई अन्य रुचि है?

विल एक 32 बिट एक 64 बिट्स JVM पर कार्यक्रम काम संकलित (मैं हाँ मान)

+4

जब तक आपका आवेदन 100% शुद्ध जावा है, तो संभावित ढेर आकार को छोड़कर इसमें कोई अंतर नहीं है। – Thomas

+0

बस याद रखें कि 32 और 64 बिट जेआरई अलग प्रतिष्ठान हैं, और अधिकांश लोगों के पास केवल 32 बिट एक डिफ़ॉल्ट रूप से स्थापित होता है (यहां तक ​​कि 64 बिट मशीनों पर भी)। – Viruzzo

+0

Thanx आपके उत्तरों के लिए। जैसा कि मैंने उम्मीद की थी, शुद्ध जावा के लिए यह कुछ भी नहीं बदलता है (ढेर आकार को छोड़कर)। – HpTerm

उत्तर

12

32-बिट और 64-बिट के बीच अंतर केवल की बनाता है किसी भी कार्यक्रम, मशीन शब्दों के आकार हैं एड्रेसेबल मेमोरी की मात्रा, और ऑपरेटिंग सिस्टम एबीआई उपयोग में है। जावा के साथ, भाषा विनिर्देश का अर्थ है कि मशीन शब्द आकार और ओएस एबीआई में अंतर तब तक कोई फर्क नहीं पड़ता जब तक आप मूल कोड का उपयोग नहीं कर रहे हों। (मूल कोड को JVM के शब्द-आकार के समान ही बनाया जाना चाहिए जो इसे लोड करेगा; आप उसी प्रक्रिया में 32-बिट और 64-बिट बिल्डों को मिश्रित नहीं कर सकते हैं, वास्तव में बहुत ही विदेशी कोडिंग के बिना, और आप जावा के साथ ऐसा नहीं करना चाहिए।)

+0

देशी शब्द का आकार सी या सी ++ कोड में मौलिक अंतर कर सकता है, खासकर यदि बुरी तरह से या हैकली लिखा गया है, लेकिन जावा कोड बिल्कुल अंतर नहीं देख पाएगा। उत्तर के लिए –

+0

Thanx। यह मेरे दिमाग में स्पष्ट है कि शुद्ध जावा में यह कुछ भी नहीं बदलेगा। – HpTerm

+1

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

2

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

संपादित करें: अंतर में ऐसी चीजें शामिल हैं जैसे 32 बिट की तुलना में थोड़ा अधिक स्मृति का उपयोग करती है, यदि आप 6u23 से पहले एक संस्करण का उपयोग कर रहे हैं और -XX:+UseCompressedOops का उपयोग नहीं कर रहे हैं। दोनों के बीच थोड़ा सा प्रदर्शन भी हो सकता है, लेकिन फिर से कुछ भी बड़ा नहीं है।

+0

आपने "कोई फर्क नहीं पड़ता" लेकिन "बहुत छोटा अंतर" नहीं कहा। बस मेरे ज्ञान के लिए शुद्ध जावा मानते हुए, यह बहुत छोटा अंतर था। – HpTerm

+0

@HpTerm अद्यतन उत्तर देखें। – berry120

+1

आपके उत्तर के लिए धन्यवाद – HpTerm

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