2010-10-23 12 views
9

मुझे अपने जावा एप्लिकेशन में कोई समस्या है जहां जेआईटी कोड तोड़ता है। अगर मैं जेआईटी को अक्षम करता हूं, तो सबकुछ ठीक काम करता है, लेकिन 10-20x धीमा चलता है।किसी विशिष्ट विधि/कक्षा के लिए जावा जेआईटी अक्षम करें?

क्या किसी विशिष्ट विधि या कक्षा के लिए जेआईटी को अक्षम करने का कोई तरीका है?

संपादित करें: मैं, उबंटू 10.10 उपयोग कर रहा हूँ दोनों के साथ एक ही परिणाम प्राप्त करने:

OpenJDK Runtime Environment (IcedTea6 1.9) (6b20-1.9-0ubuntu1) 
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode) 

और:

Java(TM) SE Runtime Environment (build 1.6.0_16-b01) 
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode) 
+0

आप बग के बारे में क्या आप प्रभावित कक्षाएं आप स्टार्ट-अप पर JIT संकलन बाहर करना चाहते हैं आपूर्ति कर सकते हैं पहले से? या क्या आपको एक मौजूदा बग मिला, जो आपकी समस्या का वर्णन करता है? – soc

+0

बहुत संभावना नहीं लगता है कि यह जेआईटी के कारण है, नहीं? यह रेस-कंडीशन के कारण नहीं हो सकता है (क्योंकि जब आप जिट अक्षम करते हैं तो समय बदलता है) ... – aioobe

+0

मैं केवल एक थ्रेड का उपयोग कर रहा हूं। मैं बग में व्यस्त हूं, लेकिन वास्तव में अभी समय नहीं है। जेआईटी द्वारा एक विशिष्ट विधि संकलित करने के बाद बग लगातार होता है। अभी के लिए मैं बस -XX स्थापित कर रहा हूं: CompileThreshold विकल्प काफी अधिक है। – Ralf

उत्तर

6

निम्नलिखित विकल्प, मेरे JVMs पर काम करता है एक विशिष्ट विधि बाहर करने के लिए:

-X:CompileCommand=exclude,the/package/and/Class,methodName 
+1

सूर्य/ओरेकल जावा 6 और उपरोक्त '-XX: CompileCommand' विकल्प' पर निर्भर हैं। अधिक जानकारी के लिए [जावा 'विकल्प देखें] (https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html), खासकर v8 के लिए। –

+1

ऐसी पुरानी पोस्ट खोदने के लिए खेद है; अगर मैं इसे नामित आंतरिक कक्षा के साथ उपयोग करना चाहता हूं तो क्या मैं इसे 'कॉम/डोमेन/पैकेज/बाहरी/इनर' या 'कॉम/डोमेन/पैकेज/बाहरी $ इनर' के रूप में सीमित कर दूंगा? – hexafraction

6

हाँ, वहाँ एक है।

-Xjit:exclude={package/class.method|package/class.method} 
+1

मुझे "अपरिचित विकल्प" मिलता है: -Xjit: extrae = {...} जावा वर्चुअल मशीन नहीं बना सका। " – Ralf

+0

एमएचएच ... निश्चित रूप से अजीब। – soc

+2

-X विकल्प गैर मानक हैं। वे संस्करणों के बीच बदल सकते हैं, और आपके JVM –

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