2011-02-10 7 views
8

कहो, सीमित "cpu = 800 और स्मृति myApp.jar चलाने = 1024"जावा आवेदन की स्मृति और CPU उपयोग

Ive कई वर्षों के लिए जावा प्रोग्रामिंग कर रहा है और यह इस सवाल पूछने के लिए एक शर्मिंदगी है। मुझे यह भी नहीं पता कि यह संभव है या नहीं। और यदि हां, तो कैसे?

जो मुझे अभी पता है वह यह है कि जावा प्रोग्राम की अधिकतम मेमोरी और सीपीयू उपयोग सेट करना संभव है। मैंने अचानक इस बारे में सोचा क्योंकि मैंने हाल ही में मोबाइल ऐप्स विकसित करना शुरू कर दिया है। मैं जानना चाहता हूं कि ऐप उस डिवाइस पर कैसे व्यवहार करेगा जिसमें बहुत सीमित स्मृति और प्रोसेसर है।

मैंने भौतिकी इंजन को ब्राउज़र पर चलने वाले डेमो ऐप्स के साथ देखा या मैं अपने पीसी पर निष्पादित कर सकता हूं। अगर मैं उन्हें मोबाइल डिवाइस पर चलाता हूं तो क्या होगा? क्या प्रदर्शन वही होगा? लाइब्रेरी के प्रदर्शन का परीक्षण करने के लिए नमूना मोबाइल ऐप विकसित करने के बजाय, मैं इसे अपने पीसी का उपयोग करके एक विशिष्ट सीपीयू और मेमोरी के साथ चलाऊंगा।

मैंने रास्ते से गुगल करने की कोशिश की ... मुझे जो भी मिला वह निगरानी और प्रदर्शन ट्यूनिंग था। मैं गलत कीवर्ड का उपयोग कर रहा हूँ।

उत्तर

8

आप -Xmx विकल्प द्वारा स्मृति उपयोग को सीमित कर सकते हैं और आप प्रक्रिया और/या CPU एफ़िनिटी की प्राथमिकता सेट करके CPU उपयोग को सीमित कर सकते हैं।

+0

धन्यवाद बेस्टएसएस। मैं कोशिश करुंगा। – demotics2002

+2

लिनक्स पर, आप 'taskset (1) 'का उपयोग करके निर्दिष्ट CPU एफ़िनिटी के साथ JVM चला सकते हैं, जो कि कई लोगों के लिए स्पष्ट है। रन-ऑफ-द-मिल जेवीएम से सीपीयू एफ़िनिटी सेट करने का कोई तरीका नहीं है। (आप जेएनआई जादू कर सकते हैं, लेकिन ड्रैगन हो सकते हैं।) – andersoj

+0

हां, आप मानक जावा विकल्पों द्वारा न तो एफ़िनिटी और प्रोसेसर प्राथमिकता सेट नहीं कर सकते हैं ... विंडोज़ पर आपको जिस कमांड की आवश्यकता है वह शुरू हो रहा है (32 बिट विंडोज़ पर यह नहीं है हालांकि, एफ़िनिटी विकल्प नहीं है) – bestsss

1

इस परिदृश्य में यह ऐप को मोबाइल एमुलेटर (E.g. एंड्रॉइड) पर चलाने में मदद कर सकता है।

इसके साथ आप विशिष्ट CPU/मेमोरी वाले मोबाइल डिवाइस का अनुकरण कर सकते हैं। तो, आपको प्रदर्शन प्राप्त करना चाहिए यह एक ऐसे डिवाइस से तुलनीय है जिसमें धीमी सीपीयू और कम रैम है।

एंड्रॉइड/नोकिया एमुलेटर मुफ्त और नोकिया/Google साइटों के डेवलपर अनुभागों से डाउनलोड के लिए उपलब्ध है।

0

https://github.com/haosdent/jcgroup जेसीग्रुप आपकी सबसे अच्छी पसंद है। आप सीपीयू शेयर, डिस्क I/O गति, नेटवर्क बैंडविड्थ आदि को सीमित करने के लिए इस लाइब्रेरी का उपयोग कर सकते हैं

1

जेवीएम का CPU उपयोग और न ही प्राथमिकता पर कोई नियंत्रण नहीं है।

जेवीएम अधिकतम/न्यूनतम मेमोरी उपयोग पर नियंत्रण रखता है।

एक कामकाज है। प्रत्येक JVM को अलग Docker container में चलाने के लिए संभव है। और प्रत्येक कंटेनर के लिए संसाधन (मेमोरी, सीपीयू, नेटवर्क, आईओ) आवंटन को नियंत्रित करें। यह डॉकर कंटेनर का बिल्कुल जोड़ा मूल्य है।

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

  • कोई संबंधित समस्या नहीं^_^