2012-03-15 16 views
12

मेरे पास जावा में लिखा गया एक प्रोग्राम है और http://www.codeproject.com/Articles/17352/JVM-Launcher पर नमूना के आधार पर सी ++ में लिखा गया मूल लॉन्चर है। एक अजीब बात यह है कि मेरे मूल लॉन्चर के साथ अपना प्रोग्राम चलाने से java.exe (~ 5% बनाम 15-20%) का उपयोग करने से अधिक CPU लेते हैं। मैं इस स्थिति को कुछ विचार दे रहा हूं लेकिन यह अभी भी ज्यादा समझ में नहीं आता है। मैंने JVM ढेर आकार को बढ़ाने की कोशिश की है, (पुनः) रिलीज मोड में मूल लॉन्चर बनाया, विभिन्न जेआरई संस्करण (1.6_24, 1.6_31, 1.7_03) का उपयोग किया लेकिन कोई भाग्य नहीं।जावा मूल लॉन्चर प्रदर्शन

क्या किसी के पास यह ठीक करने के लिए कोई सुझाव है?

+0

क्या आप हमें स्रोत (सी ++ और जावा दोनों) प्रदान कर सकते हैं? यह जानने के बिना कि आपका प्रोग्राम क्या करता है, कुछ भी कहना मुश्किल है। – JesperE

+2

मुझे पता चला है कि समस्या कहां है, यह '-Djava.compiler = NONE' का उपयोग है जो डीवीग मोड में जेवीएम लॉन्च का कारण बनता है। – secmask

+3

सवाल को बंद करने के लिए सावधानी बरतें, क्योंकि आपको कोई जवाब मिल गया है? –

उत्तर

0

नोट: ओपी की टिप्पणी को उत्तर देने के लिए यह उत्तर प्रदान करना।

समस्या यह थी कि सी ++ प्रोग्राम -Djava.compiler=NONE सेटिंग के साथ मूल लॉन्चर चला रहा था, जो अनिवार्य रूप से जेवीएम को "व्याख्यात्मक" मोड में चलाने के लिए सेट करता है, जावा कोड द्वारा जेआईटी (बस-इन-टाइम) संकलन को देशी कोड में अक्षम करता है , जो स्वाभाविक रूप से धीमी गति से चलती है क्योंकि बाइटकोड को हर बार निष्पादित करने की आवश्यकता होती है।

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