Xcode 11 डिबगर बेहद धीमा है - एक ज्ञात समस्या?


95

चूंकि मैंने नवीनतम Xcode संस्करण 11.0 (11A420a) में अपडेट किया है, इसलिए डिबगिंग बेहद धीमी और बोझिल है।

EDIT: 11.1 GM (11A1027) पर अपडेट करने के बाद भी समस्या जस की तस है।

एक परियोजना को संकलित करना और इसे सिम्युलेटर या डिवाइस में चलाना कोई समस्या नहीं है। हालांकि जब एक ब्रेकपॉइंट तक पहुँचने के लिए Xcode कम या ज्यादा बेकार हो जाता है:

  • ब्रेकप्वाइंट तक पहुंचने पर प्रोग्राम का निष्पादन तुरंत बंद हो जाता है। हालाँकि Xcode को कोड विंडो में स्थिति और दूसरा मिनट दिखाने के लिए या चर दृश्य की सामग्री को लोड करने के लिए 30 सेकंड तक की आवश्यकता होती है (जो कि ब्रेकपॉइंट पर उपलब्ध चर के मूल्यों और राज्यों को दिखाता है)।
  • यदि मैं स्टेप्स इन या स्टेप ओवर फीचर्स का उपयोग करता हूं तो अगले स्टेप को करने के लिए एक मिनट तक का समय लगता है और फिर से वैरिएबल लोड करने के लिए एक और मिनट।

मैं एक मैक मिनी 2018 पर 3.2 GHz i7 और 32 GB RAM के साथ Xcode चला रहा हूं। मैंने बिना किसी समस्या के एक ही मशीन पर Xcode 10 का उपयोग किया है।


"Xcode slow" के लिए खोज करने से थ्रेड्स का एक टन और निश्चित रूप से संभव समाधान निकलता है। मेरे वर्षों से आईओएस डेवलपर के रूप में मुझे पता है कि एक्सकोड कभी भी सबसे तेज और स्थिर कार्यक्रम नहीं था। हालाँकि यह अब उतना बुरा नहीं था।

दुर्भाग्य से कोई भी ट्रिक्स (Xcode या Mac को फिर से शुरू करना, प्रोजेक्ट को साफ करना, Xcode लाइब्रेरी के फोल्डर को साफ करना, आदि) का कोई प्रभाव नहीं पड़ा,

तो बड़ा सवाल यह है:

क्या यह Xcode 11 में एक ज्ञात समस्या है? क्या कोई ज्ञात समाधान हैं?


अच्छी तरह से शुरुआत के लिए Xcode का नवीनतम स्थिर संस्करण 11A1027 है, न कि 11A420a। मैं इसे अपडेट करके शुरू करूंगा।
राफेल फ्रांसिस्को

2
Mmh, 11A420a ऐप स्टोर में उपलब्ध नवीनतम संस्करण है
आंद्रेई हेरफोर्ड

2
मैंने अब 11A420a को अपडेट किया है और समस्या अभी भी वही है।
आंद्रेई हर्फोर्ड

2
मैंने ११.१ (११ ए १०२ 11) की कोशिश की - वही
११: ०१ बजे नीकंस २ 11: ’१

3
एक चीज जो आप कर सकते हैं वह है Apple के साथ बग रिपोर्ट करना। यही मैं आमतौर पर करता हूं। वे अंततः उत्तर देते हैं। आमतौर पर वे सिस्टम की जानकारी मांगते हैं और आपको कुछ डायग्नोस्टिक्स चलाने की आवश्यकता होती है। सामान्य तौर पर, Xcode धीमा है और मुझे यकीन नहीं है कि Apple जानता है कि इसे कैसे ठीक किया जाए। मैं एक 10 कोर iMac प्रो पर चल रहा हूँ और Xcode अभी भी कुत्ता धीमा है।
मोबाइल बेन

जवाबों:


26

वैसे मुझे भी यही समस्या थी और हाल ही में पता चला कि मैं अपनी स्कीम के लिए डायग्नोस्टिक्स को निष्क्रिय करना भूल गया था

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

अपने रन कॉन्फ़िगरेशन खोलें -> योजनाओं को प्रबंधित करें -> योजना संपादित करें -> भागो -> निदान टैब


7
जवाब के लिए धन्यवाद। Upvotes के कारण मुझे लगता है कि इससे कुछ उपयोगकर्ताओं के लिए समस्या हल हो गई है। हालांकि, मेरे मामले में इससे कोई फर्क नहीं पड़ा कि ऐसा क्या है। तो जबकि यह कुछ मामलों में मदद कर सकता है यह दुर्भाग्य से कोई सामान्य समाधान नहीं है
आंद्रेई हर्फोर्ड

आंद्रेई क्या आप कुछ मात्रात्मक मैट्रिक्स प्रदान कर सकते हैं जो "धीमी हो गई" का अर्थ है? क्या आप जानते हैं कि स्विफ्ट और ऑब्जेक्टिव-सी की मिश्रित भाषा वाली परियोजनाएं आमतौर पर धीमी होती हैं?
गेनाडी रियाबकिन

2
वैसे मुझे लगता है कि यह सब सवाल में है ... सबसे पहले इसका बिल्ड टाइम से कोई लेना-देना नहीं है। जैसा कि पहले लिखा गया था: "एक परियोजना को संकलित करना और इसे सिम्युलेटर में या किसी उपकरण पर चलाना कोई समस्या नहीं है। हालांकि, जब एक ब्रेकपॉइंट पर पहुंचता है तो Xcode कम या अधिक अनुपयोगी हो जाता है"
आंद्रेई हर्फ़ोर्ड

कूल आंद्रेई, लेकिन डिबगर के बारे में मेरा जवाब। डायग्नोस्टिक्स पृष्ठ डिबगर की सेटिंग दिखाता है। और बिल्ड टाइम के बारे में कुछ भी नहीं है। विशेष रूप से स्मृति प्रबंधन और आवंटन के बारे में हिस्सा। बस अपनी योजना और कॉन्फ़िगरेशन का नाम फिर से जाँचें।
गेनाडी रियाबकिन

आंद्रेई, मुझे नहीं लगता कि आपने अपने Xcode 11 के शीर्ष पर एक कस्टम LLDB स्थापित किया है जिसका तात्पर्य नवीनतम OS-X से है। यह आपके पर्यावरण के लिए कुछ विशिष्ट है। मैं सभी स्कीम सेटिंग्स को एक और बार रीचेक करने की सलाह दूंगा।
गेनाडी रियाबकिन

1

जब मैंने समग्र बनाम संकलन व्यवहार का उपयोग करते हुए कुछ प्रदर्शन सुधार देखे हैं। इसके अतिरिक्त मोजावे और कैटालिना पर चल रहे दोनों को प्रदर्शन के मुद्दों को दिखाना चाहिए। विशेष रूप से कैनवस पूर्वावलोकन और अन्य नई विशेषताओं के लिए Xcode के अंतिम संस्करण की तुलना में अधिक CPU तीव्रता की आवश्यकता होती है, मुझे उम्मीद है कि Xcode 11 का उपयोग करते समय Mojave का प्रदर्शन कम होगा (क्योंकि यह OS के इस संस्करण के लिए अनुकूलित नहीं है)। कैटालिना बीटा में होने के साथ, मुझे अतिरिक्त मुद्दों को भी देखने की उम्मीद है। मैंने आंखों के परीक्षण के अलावा अन्य विशिष्ट उपाय नहीं किए हैं। पूरे संकलन पर प्रारंभिक रन धीमा है, लेकिन इसके बाद बेहतर हो रहा है।

त्वरित सहायता स्थिति:

सारांश

यह सेटिंग उस तरीके को नियंत्रित करती है जिस तरह से एक मॉड्यूल में स्विफ्ट फ़ाइलों को फिर से बनाया जाता है। * वृद्धिशील : केवल उस मॉड्यूल में स्विफ्ट स्रोत फ़ाइलों का पुनर्निर्माण करें, जो कई कंपाइलर प्रक्रियाओं को आवश्यकतानुसार चला रहे हों। * संपूर्ण मॉड्यूल : मॉड्यूल में सभी स्विफ्ट स्रोत फ़ाइलों को एक एकल संकलक प्रक्रिया में हमेशा पुनर्निर्माण करें। घोषणा

SWIFT_COMPILATION_MODE मान प्रकार

गणना (स्ट्रिंग)


4
संकलन का समय ठीक है, ब्रेकपॉइंट का उपयोग करते हुए हालांकि टेलोड्स को नजदीकी ब्लैक होल के घटनाओं क्षितिज के करीब कहीं और टेलीपोर्ट करता है।
निकन्स

2
भले ही उत्तर प्रश्न में वर्णित समस्या को हल नहीं करता है, लेकिन एक नोटिस जो लेखक ने एक प्रयास किया है। तो यह भारी मतों के लिए एक कारण नहीं होना चाहिए, यह होना चाहिए?
आंद्रेई हर्फोर्ड

इंक्रीमेंटल वास्तव में अब डिबग बिल्ड में अनुशंसित सेटिंग है (WWDC टॉक डेवलपर . apple.com/videos/play/wwdc2018/408 देखें )। हो सकता है कि यह परियोजना के आधार पर एक परियोजना पर निर्भर करता है, लेकिन हमारे लिए एक पूर्ण मॉड्यूल निर्माण की तुलना में एक साफ निर्माण थोड़ा धीमा (5s) था लेकिन वृद्धिशील बिल्ड के लिए तेजी से लगभग 40% (30s)।
माइक ब्रायंट

@ माइकन्स का संकलन समय अभी भी किसी अन्य आईडीई और अन्य भाषाओं के साथ तुलना करने में धीमा है। लेकिन मुझे सबसे बुरा मानना ​​है कि यह डिबगर है।
फायरट्रेप

1

कृपया अनचेक करने का प्रयास करें: एडिट स्कीम में प्रत्येक टारगेट पर बिल्ड समानांतर करें । यदि आपकी परियोजना में कई लक्ष्य हैं, तो इसे बनाने में समय की बचत होगी।

योजना संपादित करें:

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


0

क्या आपने सुरक्षित मोड में Xcode चलाने की कोशिश की है? यह आदर्श नहीं है, लेकिन यह एकमात्र तरीका था जिससे मैं इसे कुशलता से चला सकता था। यह हाल ही में कैटालिना अपडेट होने तक है जहां मेरे डिवाइस को अब सुरक्षित मोड में नहीं पाया गया है। तो मैं अब एक वर्ग में वापस आ गया हूँ।


यह मेरे एंटीवायरस सॉफ्टवेयर चीजों को धीमा कर रहा था। इसे अक्षम करने से समस्या हल हो गई।
डिनो

@ बिएफॉन का मानना ​​है कि डिनो मैको सुरक्षित मोड का जिक्र कर रहा था। आप इसके बारे में और अधिक यहाँ पढ़ सकते हैं: support.apple.com/en-us/HT201262
बार्टोज़ कुण्ट

0

मुझे दो अलग-अलग मामलों में समान समस्याएं मिली हैं:

1) ऐप को Xcode द्वारा लॉन्च नहीं किया गया है, अर्थात झंडा "लॉन्च होने के लिए निष्पादन योग्य होने की प्रतीक्षा करें" योजना रन सेटिंग्स के जानकारी पैनल के अंदर सेट की गई है;

2) विकल्प "पृष्ठभूमि के कारण लॉन्च करें घटना" योजना सेटिंग्स में चयनित है (लेकिन यह डिफ़ॉल्ट नहीं है)

Xcode विकल्प स्थिति

Xcode 11.2.1 (11B500)


0

मेरे मामले में (XCode 11.x, MacOS 10.15.2) मैंने पाया है कि अगर मैं एक-चरणीय कार्रवाई कर रहा हूं तो चरम डीबगर सुस्ती केवल तभी शुरू हो जाती है, जब मैं चरण बटन दबाता हूं। मेरा वर्तमान समाधान यह करने से बचना है।

शुद्ध अटकलें लेकिन शायद यह XCode / LLDB द्वारा कई ब्रेकप्वाइंट को समवर्ती रूप से सेवा करने की कोशिश कर रहा है? सभी ब्रेकप्वाइंट को हटाने की कोशिश करें लेकिन एक और देखें कि क्या चीजों में मदद करता है

मामले में यह प्रासंगिक है: मैं ज्यादातर X ++ में C ++ के साथ काम करता हूं, यहां थोड़ा-सा ओब्ज-सी है। मैं वर्तमान में स्विफ्ट का उपयोग बिल्कुल नहीं करता।


0

मैं हमेशा के लिए इस के साथ काम कर रहा हूं और आखिरकार इसका पता लगा लिया। यह मेरी ~ / .lldbinit फ़ाइल में ये पंक्तियाँ थीं:

break set -F '-[UIView layoutIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc
break set -F '-[UIView(AdditionalLayoutSupport) updateConstraintsIfNeeded]' -c '!(BOOL)[NSThread isMainThread]' -L objc

मैंने उन पंक्तियों पर टिप्पणी की और अब यह डिबगर के बिना लगभग उतना ही तेज़ है!


-2

मेरे पास 238 अप्रयुक्त ब्रेकपॉइंट सेट थे। जब मैंने उन्हें हटा दिया, तो यह फिर से तेज़ है (निदान के साथ भी चालू)।

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