मैं हाल ही में सभी JVM JRE 6 [Java VM Options] में उपलब्ध तर्कों के बारे में पढ़ रहे हैं और यह देखा गया था:JVM -XX: + स्ट्रिंग कैश तर्क?
-XX: + StringCache: आमतौर पर आवंटित तार की कैशिंग सक्षम बनाता है।
अब मैं धारणा है कि जावा प्रशिक्षु का एक पूल रखा के नीचे हमेशा था (सही शब्द?) तार और जब शाब्दिक साथ स्ट्रिंग संयोजन की तरह कुछ कर रही है कि यह नई वस्तुओं बनाने नहीं किया गया था, लेकिन उन्हें इस पूल से खींच रहा है। क्या किसी ने कभी भी इस तर्क का उपयोग किया है, या समझा सकता है कि इसकी आवश्यकता क्यों होगी?
संपादित करें: मैंने यह बेंचमार्क चलाने का प्रयास किया, यह देखने के लिए कि क्या इस तर्क का कोई प्रभाव पड़ा है और इसे पहचानने के लिए सूर्य जेवीएम प्राप्त करने में असमर्थ था। यह था:
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode,
sharing)
तो मुझे यकीन नहीं है कि यह तर्क बिल्कुल काम करता है या नहीं।
मुझे लगता है कि सबसे स्ट्रिंग आपरेशन होना शामिल प्रयोग नहीं करते। इंटर्निंग का उपयोग कक्षा फ़ाइलों से स्ट्रिंग मानों को स्टोर करने के लिए JVM द्वारा किया जाता है और डुप्लिकेट की वजह से अत्यधिक मेमोरी खपत से बचने के लिए किया जाता है। – akarnokd
महान सवाल। सूरज डॉक्स यहां बहुत अस्पष्ट हैं। हालांकि, इंटर्निंग पर दस्तावेज़ स्पष्ट हैं कि यह केवल विशिष्ट परिस्थितियों (स्ट्रिंग अक्षर) के तहत संचालित होता है, इसलिए शायद जेवीएम तर्क इस व्यवहार को व्यापक परिस्थितियों में लागू करता है। –
मुझे ओपनजेडीके स्रोत में यह विकल्प नहीं मिल रहा है। आपको क्या लगता है इसका मतलब है? –