सूर्य का जेवीएम दो स्वादों में आता है: -client
और -server
, जहां सर्वर वीएम को लंबी चल रही प्रक्रियाओं के लिए अनुकूलित किया जाना चाहिए, और सर्वर अनुप्रयोगों के लिए अनुशंसित है।यह सुनिश्चित करने के लिए कि मैं "सर्वर" JVM का उपयोग कर रहा हूं?
जब मैं कोई पैरामीटर के साथ java
चलाने के लिए, यह उपयोग विकल्पों को प्रदर्शित करता है, जो निम्न पाठ में शामिल हैं:
The default VM is server, because you are running on a server-class machine.
इस देखने के बाद, मैं इस प्रक्रिया स्टार्टअप आदेश को -server
जोड़ने के लिए परेशान नहीं किया।
हालांकि, हाल ही JVM क्रैश लॉग पर, मैं फ़ाइल के अंत के पास निम्न पंक्ति देखा:
vm_info: Java HotSpot(TM) Client VM (14.0-b16) for linux-x86 JRE (1.6.0_14-b08), built on May 21 2009 02:01:47 by "java_re" with gcc 3.2.1-7a (J2SE release)
यह है कि जावा, ग्राहक वीएम उपयोग कर रहा है मुझे लगता है कि यह में कहते हैं के बावजूद सहायता संदेश मैं अपने स्टार्टअप कमांड में -server
विकल्प जोड़ने जा रहा हूं, लेकिन अब मुझे संदिग्ध है। तो मेरा सवाल है: यह सुनिश्चित करने का कोई तरीका है कि वीएम मैं वास्तव में सर्वर वीएम चला रहा हूं, बिना किसी JVM क्रैश को मजबूर करने के लिए?
ओएस उबंटू 8.04 है, लेकिन मैं जेडीके 1.6.0_14 का उपयोग कर रहा हूं जिसे मैंने सूर्य की वेबसाइट से डाउनलोड किया है।
तक साथ JVM शुरू करने से JMX (जावा प्रबंधन एक्सटेंशन) एजेंट सक्षम वैसे, मुझे पता है कि यह सर्वर सर्वरफॉल्ट के लिए अधिक उपयुक्त लगता है, लेकिन मुझे उम्मीद है कि उत्तर जावा कोड की कुछ पंक्तियां होंगी, इसलिए ऐसा लगता है कि प्रोग्रामर के पास जवाब देने का एक बेहतर मौका है। – itsadok
मुझे यह इंगित करने की आवश्यकता महसूस होती है कि सिर्फ "जावा" चलाने के साथ कोई तर्क नहीं है, सर्वर VM का उपयोग कर रहा है, यह गारंटी नहीं देता है कि जो भी स्क्रिप्ट/कमांड क्रैश की गई प्रक्रिया को लॉन्च करता है वह क्लाइंट वीएम को तर्क के रूप में निर्दिष्ट नहीं कर रहा है। –