मेरा पिछला संस्करण, जबकि झूठी नहीं, एक त्वरित लिखित oversimplification था।
32 से 64 बिट्स में बदलना स्वचालित रूप से आपके एप्लिकेशन को तेज़ी से नहीं चलाएगा, कुछ मामलों में यह विपरीत हो सकता है। "ऋणात्मक" पक्ष पर JVM में मेमोरी पॉइंटर्स के डी-रेफरेंसिंग को 32 बिट से 64 बिट पॉइंटर्स के साथ लंबा समय लग सकता है। एक 16 जीबी ढेर का एक पूर्ण कचरा इकट्ठा और संयोजन 2 जीबी ढेर के साथ अधिक समय लेगा।
सकारात्मक पक्ष पर: 64 बिट प्रोसेसर निर्देश जो 32 बिट से अधिक प्रभावी होते हैं। 64 बिट जेवीएम आपको एक ढेर आकार 2^32 गुणा से थोड़ा बड़ा करने की अनुमति देगा, थोड़ा कम, 4 जीबी जिसे आप 32 बिट के साथ प्राप्त कर सकते हैं। (यदि आप उस राशि की मात्रा खरीद सकते हैं) कुछ जेवीएम संकुचित संदर्भों के साथ काम कर सकते हैं यदि आपके पास 4 जीबी से कम ढेर आकार है, तो आपको 64 बिट डी-रेफरेंसिंग मूल्य का भुगतान किए बिना 64 बिट निर्देशों का लाभ मिल रहा है ।
यदि आपके पास एक अच्छा जेवीएम है तो मैं ढीले आकार के मामले में 64 बिट्स पर जाऊंगा, बस तैयार रहें कि आपको वास्तव में एक बड़ा ढेर होने के लिए प्रदर्शन हिट करना पड़ सकता है।
कम से कम विंडोज़ पर एक लाभ नहीं है, 1.5 जीबी की तुलना में अधिक मेमोरी का उपयोग करने की संभावना है? 32-बिट जावा प्रक्रिया के लिए ऐसी कुछ सीमा है। http://mystyleit.com/blogs/mystyleit/archive/2009/05/27/32bit-windows-memory-and-java.aspx – Jonik
नवीनतम 64-बिट JVMs संदर्भों को निर्दिष्ट करने के बारे में थोड़ा अधिक स्मार्ट नहीं हैं? यानी, केवल 32-बिट संदर्भों का उपयोग करते हुए यदि इसे पूर्ण 64-बिट की आवश्यकता नहीं है। मुझे लगता है कि मैंने कहीं कहीं पढ़ा है। –