2016-07-07 7 views
5

प्रलेखन से, -Xss का उपयोग JVM के स्टैक आकार को सेट करने के लिए किया जाता है। लेकिन मैं इस कथन के बारे में बहुत उलझन में हूं।-Xss JVM विकल्प वास्तव में

जावा में, प्रत्येक थ्रेड का अपना ढेर होता है। क्या -Xss द्वारा निर्दिष्ट संख्या:

  1. कुल स्मृति जो सभी धागे द्वारा ढेर के रूप में उपयोग की जा सकती है? जैसे यदि -Xss 256K पर सेट है, तो सभी थ्रेड इस 256K मेमोरी के भीतर अपना स्वयं का ढेर बनायेंगे।

  2. धागे के प्रत्येक ढेर का आकार। जैसे यदि -Xss 256K पर सेट है, तो प्रत्येक थ्रेड में 256K बड़ा का ढेर होगा। इसलिए 10 धागे 2560K पूरी तरह से उपयोग करेंगे।

बहुत बहुत धन्यवाद।

संपादित करें:

आपके उत्तरों के लिए धन्यवाद। ऐसा लगता है कि यह ऊपर (2) सेनारियो है। -एक्सएसएस किसी विशेष धागे का सबसे बड़ा ढेर आकार निर्दिष्ट करता है।

फिर मेरे पास एक अनुवर्ती प्रश्न है: इन स्मृतियों को आवंटित किया जाएगा?

हम -Xmx और -Xms का उपयोग करके आरक्षित ढेर मेमोरी निर्दिष्ट कर सकते हैं। इन आरक्षित स्मृति का उपयोग करके आवंटित किया जाएगा? या इसे मूल स्मृति से सीधे आवंटित किया जाता है?

+0

[इस उत्तर] (http://stackoverflow.com/a/17167720/3788176) कहा गया है कि एक पर्याय है "-XX: ThreadStackSize", जिसका मतलब है कि यह प्रति-धागा है। –

+0

https://stackoverflow.com/questions/4967885/jvm-option-xss-what-does-it-do-exactly –

उत्तर

6

यह धागा प्रति ढेर के आकार, this page on the java command के हवाले से बताया गया है:

-Xssआकार

सेट धागा ढेर आकार (बाइट्स में) ...

तो यह आपके दूसरे भाग में है सवाल। हालांकि मुझे नहीं लगता कि यह सभी थ्रेड स्टैक आकारों को जोड़ना आम तौर पर सटीक है। जेवीएम कार्यान्वयन के आधार पर, वास्तविक कुल ढेर आकार 2560K नहीं हो सकता है। JVM spec से इस उद्धरण पर ध्यान दें:

यह विनिर्देश जावा वर्चुअल मशीन स्टैक को या तो निश्चित आकार के होने या गणना के अनुसार आवश्यक रूप से विस्तार और अनुबंध करने की अनुमति देता है। यदि जावा वर्चुअल मशीन स्टैक एक निश्चित आकार के हैं, तो उस स्टैक को बनाए जाने पर प्रत्येक जावा वर्चुअल मशीन स्टैक का आकार स्वतंत्र रूप से चुना जा सकता है।

3

प्रत्येक धागे का अपना ढेर होता है। अधिकांश जेवीएम देशी धागे का उपयोग करते हैं और ये ढेर देशी वर्चुअल मेमोरी का उपयोग करते हैं। वर्चुअल मेमोरी का उपयोग करने का लाभ केवल पृष्ठों को इस्तेमाल स्मृति में बदल दिया जाता है।

इन मेमोरी को आवंटित किया जाएगा?

सी प्रोग्राम में थ्रेड स्टैक जैसी मूल स्मृति होगी।

हम -Xmx और -Xms का उपयोग करके आरक्षित ढेर मेमोरी निर्दिष्ट कर सकते हैं। इन आरक्षित स्मृति का उपयोग करके आवंटित किया जाएगा?

ढेर ढेर का उपयोग नहीं करते हैं, नहीं।

या इसे सीधे मूल मेमोरी से आवंटित किया जाता है?

हाँ।

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