मैं इस मुद्दे पर Apple के एक वरिष्ठ तकनीकी सलाहकार के साथ एक साल से अधिक समय से काम कर रहा था, और उससे पहले कुछ अन्य वरिष्ठ सलाहकार के साथ काम कर रहा था। हमने कई मौकों पर Apple इंजीनियर्स को भेजने के लिए "डेटा कैप्चर" किया है और एक्टिविटी मॉनीटर, इमेज कैप्चर में क्या चल रहा है, यह प्रदर्शित करने के लिए कई मौकों पर स्क्रीन रिकॉर्डिंग की, और आखिरकार, एक ऐसी दलील में जिसे आइडेंट / यूजर्स / यूजर_नाम पर रखता है। / लाइब्रेरी / एप्लीकेशन सपोर्ट / icdd / deviceInfoCache.plist (Xcode में प्रदर्शित करके)।
इस बिंदु पर, यहां मेरा सबसे अच्छा अनुमान है कि क्या हो रहा है:
Icdd (इमेज कैप्चर डिवाइस डेटाबेस) प्रक्रिया स्कैनर को व्यस्त नेटवर्क पर आती और जाती हुई देखती है। यह एक हैश तालिका में उनकी आइकन फ़ाइलों की एक सूची रखने का प्रयास करता है, जिसे वह ऊपर लिखे डिवाइसइन्फोचेचे.प्लिस्ट को भी लिखता है। हां - यह पागल लगता है - यह स्कैनर की आइकन फ़ाइलों का संदर्भ रख रहा है। लेकिन यहां तक कि क्रैजियर भी है, किसी कारण से, इस फ़ाइल में लगभग सभी प्रविष्टियां उन फ़ाइलों की ओर इशारा करती हैं जो मौजूद नहीं हैं। कई प्रणालियों में, मैंने देखा है कि फ़ाइल में कई हजारों प्रविष्टियां हैं, फिर भी केवल कुछ में से कुछ .icns फाइलें एक मशीन पर मौजूद हैं, और अन्य में कोई भी मौजूद नहीं है। मेरा मानना है कि जब यह फ़ाइल बड़ी हो जाती है, तो आइकड बहुत समय बिता रहा है। .plist फ़ाइल में प्रविष्टियों के अस्तित्व की जाँच करने और फ़ाइल को संशोधित करने की कोशिश कर रहा है। मैं इसे दो कारणों से मानता हूं। सबसे पहले, जब मैं अपना लैपटॉप घर ले जाता हूं, icdd प्रक्रिया कभी-कभी CPU के लगभग 100% पर चलती रहती है, लेकिन जब मैं इसे मारता हूं, तो यह हर बार "सामान्य" लगभग 0.0 से 0.1% तक वापस चला जाता है। इसलिए, मुझे लगता है कि यह कभी-कभी प्रविष्टियों के बारे में जानकारी संसाधित करने की कोशिश कर रहा है जब मैं इसे घर पर खोलता हूं। लेकिन जब मैं व्यस्त नेटवर्क पर रहते हुए इसे मारता हूं, तो यह तुरंत 100% के करीब वापस आ जाता है। जब छवि कैप्चर में दिखाए गए स्कैनर की संख्या कम हो जाती है (जो कि यह अक्सर होता है, लेकिन समय-समय पर किसी कारण से स्पाइक हो जाएगा), आईसीडीडी अंततः बस जाएगा। और दूसरा, deviceInfoCache.plist फ़ाइल को हटाने से आईकार्ड को थोड़ी देर के लिए यथोचित व्यवहार करने का कारण बनता है - जब तक कि प्रविष्टियों की संख्या फिर से नहीं बन जाती। ध्यान दें कि icdd मेमोरी में इन प्रविष्टियों की एक प्रति रखता है, इसलिए यदि आप उपयोगकर्ता खाते से फ़ाइल हटाते हैं, तो icdd बस तुरंत फिर से लिखता है। और निश्चित रूप से, आप फ़ाइल को हटाने के लिए लंबे समय तक आईकार्ड को मार नहीं सकते हैं, इसलिए आपको टर्मिनल के माध्यम से लॉग इन करना होगा और किसी अन्य व्यवस्थापक खाते से फ़ाइल को हटाना होगा। जब आप वापस लॉग इन करते हैं, तो icdd फाइल को फिर से बनाएगा, लेकिन इसमें अपेक्षाकृत कुछ प्रविष्टियाँ होंगी और थोड़ी देर के लिए अच्छा व्यवहार करेंगे।
तराजू के कुछ विचार देने के लिए, Apple इंजीनियर्स यह देखकर चौंक गए कि मेरे पास छवि कैप्चरिंग में प्रदर्शित होने वाले 85 स्कैनर थे। अक्सर, हालांकि, यह संख्या एक ही सिस्टम पर और एक ही समय सीमा के दौरान लगभग 6 हो जाएगी। DeviceInfoCache.plist फ़ाइल में सिस्टम पर 8,000 से 12,600 प्रविष्टियाँ हैं, जिन पर मैंने गौर किया है कि इसमें आईकड की समस्याएँ हैं - मेरा एक बड़ा है, और मेरा मानना है कि यह एक पुरानी मशीन से लिया गया है क्योंकि मैं आईक्यूड समस्याएं कर रहा था 2016-दिसंबर में मैंने अपना नया मैकबुक प्रो सेट किया। जब मैंने प्लिस्ट फ़ाइल को डिलीट किया, तो नई बनाई गई फ़ाइल में शुरुआती प्रविष्टियों की संख्या 44 थी, और कुछ दिनों के लिए आईक्यूडीयू सीपीयू उपयोग 0.0% के करीब हो गया। हालाँकि, कैंपस में लगभग 5 दिनों के बाद, मेरी प्लिस्ट फाइल में 964 एंट्री हैं, और icdd cpu का उपयोग विश्वविद्यालय में व्यस्त नेटवर्क पर 30% और 90% के बीच नियमित रूप से उछाल देगा। जब मैं घर पर होता हूं, तो प्लिस्ट फ़ाइल केवल एक दिन में 0 से 2 तक प्रविष्टियों की संख्या में वृद्धि करेगी। मेरी पिछली प्लिस्ट फ़ाइल में 12,600 प्रविष्टियों में से, केवल 2 में "डिवाइसनेम" है, बाकी में एक "iconPathLocation" है, जो सभी के लिए इंगित करता है। वर्तमान प्लिस्ट के साथ, अभी भी 2 प्रविष्टियां हैं जिनमें "डिवाइसनाम" शामिल है, और बाकी में एक "iconPathLocation" मौजूद है जो मौजूद नहीं है। जिनमें से सभी .xns फ़ाइलों की ओर इशारा करते हैं। वर्तमान प्लिस्ट के साथ, अभी भी 2 प्रविष्टियां हैं जिनमें "डिवाइसनाम" शामिल है, और बाकी में एक "iconPathLocation" मौजूद है जो मौजूद नहीं है। जिनमें से सभी .xns फ़ाइलों की ओर इशारा करते हैं। वर्तमान प्लिस्ट के साथ, अभी भी 2 प्रविष्टियां हैं जिनमें "डिवाइसनाम" शामिल है, और बाकी में एक "iconPathLocation" मौजूद है जो मौजूद नहीं है।
इसलिए, अल्पकालिक समाधान अपने उपयोगकर्ता खाते से लॉग आउट करते समय टर्मिनल के माध्यम से दूसरे व्यवस्थापक खाते से फ़ाइल को हटाना है। उम्मीद है, यह जानकारी अब मेरे वरिष्ठ सलाहकार से Apple इंजीनियर्स को प्रदान की जा रही है, Apple इंजीनियरों को यह जानने के लिए पर्याप्त जानकारी होगी कि icdd इस तरह क्यों काम कर रहा है और समस्या को ठीक कर सकता है। बेशक, यह संभवतः मदद करेगा यदि आप मेरे अल्पकालिक समाधान को सत्यापित कर सकते हैं और यह रिपोर्ट करना जारी रख सकते हैं कि आप एप्पल को क्या पाते हैं।