Intellij Debugger धीमा: विधि विराम बिंदु नाटकीय रूप से डीबगिंग को धीमा कर सकते हैं


87

जब मैं इंटेलीज डिबगर शुरू करता हूं, तो यह संकेत आता है जिसे आप स्क्रीनशॉट में देख सकते हैं। डीबगर शुरू होने में बहुत समय लेता है। इस समस्या को हल कैसे करें?यहाँ छवि विवरण दर्ज करें

जवाबों:


186

विधि विराम बिंदु बंद करें। आप रन के माध्यम से अपने सभी ब्रेकप्वाइंट देख सकते हैं ब्रेकपॉइंट देखें (Ctrl - Shift -F8)


25
लेकिन निश्चित रूप से अपने ब्रेकप्वाइंट को हटाने से डिबगिंग का उद्देश्य समाप्त हो जाता है? या मुझे कुछ याद आ रहा है।
arush436

16
@ arush436 उन स्थितियों की संख्या जहां आपको "विधि विराम बिंदु" की आवश्यकता है (! = नियमित रूप से विराम बिंदु) बहुत सीमित हैं।
रॉबिन

28
और फिर एक अंतर ब्रेकपॉइंट और एक नियमित ब्रेकपॉइंट के बीच क्या अंतर है?
जहाराली


4
यहां विभिन्न प्रकार के विराम बिंदुओं का अद्यतन लिंक दिया गया है ।
कैमरून

12

IDEA 2017.1 में इम्यूलेटेड मेथड ब्रेकपॉइंट्स पेश किए गए: https://www.jetbrains.com/help/idea/use-breakpoint.html#method_breakpoint वे प्रदर्शन पेनल्टी के बिना मेथड ब्रेकप्वाइंट का उपयोग करने की अनुमति देते हैं। डिफ़ॉल्ट रूप से सक्षम।


यदि आप यह संदेश देखते हैं, तो आपके पास (मेरे जैसे) एक पॉपअप पर "रद्द करें" पर क्लिक किया जा सकता है। इसे फिर से सक्षम करने के लिए शो-ब्रेकप्वाइंट में ब्रेक प्वाइंट पर जाएं और "एमुलेटेड" की जांच करें।
कप्तान मैन

7

JetBrains टीम से: "JVM डिज़ाइन के कारण मेथड ब्रेकप्वाइंट बहुत डिबगर को धीमा कर देगा, वे मूल्यांकन करने के लिए महंगे हैं। विधि ब्रेकपॉइंट निकालें और नियमित लाइन ब्रेकप्वाइंट का उपयोग करने पर विचार करें।" देखें और अधिक

लंबी कहानी को छोटा बनाने के लिए, ऐसा लगता है कि मूल मुद्दा यह है कि जेपीडीए की विधि प्रविष्टि और विधि निकास सुविधा का उपयोग करके विधि ब्रेकपॉइंट लागू किए जाते हैं । इस कार्यान्वयन के लिए JVM की आवश्यकता होती है कि कोई भी घटना किसी भी समय किसी भी विधि में प्रवेश करती है और जब कोई भी धागा किसी विधि से बाहर निकलता है ।


7

यहाँ छवि विवरण दर्ज करें

डीबग पैनल से विधि विराम बिंदु बंद करें। यहाँ एक स्क्रीनशॉट है।


5

अपने कोड में लाल हीरे के आइकन (लाल घेरे नहीं) देखें, जो विधि ब्रेकप्वाइंट का प्रतिनिधित्व करते हैं। सबसे शायद आप उन्हें कोटलिन में प्राप्त () / सेट () विधियों पर सेट करते हैं।


0

व्यावहारिक सलाह जो मैं अनुसरण करता हूं: 1. एप्लिकेशन आने के दौरान सभी ब्रेकप्वाइंट को म्यूट करें 2. उस प्रवाह को डीबग करते समय ब्रेकपॉइंट को सक्षम करें।

निश्चित रूप से, यह मदद नहीं करेगा यदि आप कुछ ऐसा करने की कोशिश कर रहे हैं जो ऐप स्टार्टअप के दौरान होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.