ฉันทำงานกับที่ปรึกษาด้านเทคนิคระดับสูงของ Apple ในเรื่องนี้มานานกว่าหนึ่งปีและทำงานร่วมกับที่ปรึกษาอาวุโสคนหนึ่งก่อนหน้านั้น เราได้ทำการ "data capture" เพื่อส่งให้วิศวกรของ Apple หลายครั้งและทำการบันทึกหน้าจอหลายครั้งเพื่อแสดงให้เห็นถึงสิ่งที่เกิดขึ้นใน Activity Monitor, Image Capture และท้ายที่สุดในรายการที่ icdd รักษาไว้ที่ / Users / ชื่อผู้ใช้ / Library / Application Support / icdd / deviceInfoCache.plist (โดยแสดงเป็น Xcode)
ณ จุดนี้นี่คือการประมาณการที่ดีที่สุดของฉันในสิ่งที่เกิดขึ้น:
กระบวนการ icdd (ฐานข้อมูลอุปกรณ์จับภาพ) จะเห็นเครื่องสแกนเข้ามาในเครือข่ายที่ไม่ว่าง มันพยายามที่จะเก็บรายการของไฟล์ไอคอนของพวกเขาในตารางแฮชซึ่งมันยังเขียนไปยังไฟล์ deviceInfoCache.plist ดังกล่าวข้างต้น ใช่ - มันฟังดูบ้า - มันกำลังเก็บการอ้างอิงไปยังไฟล์ไอคอนของเครื่องสแกน แต่ถึงอย่างนั้น crazier ก็คือรายการบางส่วนในไฟล์นี้เกือบทั้งหมดชี้ไปที่ไฟล์. icns ที่ไม่มีอยู่ ในหลาย ๆ ระบบที่ฉันได้ดูมีรายการหลายพันรายการในไฟล์ แต่มีไฟล์. icns เพียงไม่กี่รายการที่มีอยู่ในหนึ่งในเครื่องและไม่มีรายการอื่น ๆ ฉันเชื่อว่าเมื่อไฟล์นี้มีขนาดใหญ่ icdd ใช้เวลาพยายามตรวจสอบการมีอยู่ของรายการในไฟล์. plist และแก้ไขไฟล์ ฉันเชื่อว่านี่เป็นสองเหตุผล อย่างแรกคือเมื่อฉันนำแล็ปท็อปกลับบ้าน บางครั้งกระบวนการ icdd ยังคงทำงานที่ประมาณ 100% ของ CPU แต่เมื่อฉันฆ่ามันกลับไปที่ "ปกติ" ประมาณ 0.0 ถึง 0.1% ทุกครั้ง ดังนั้นฉันคิดว่าบางครั้งยังคงพยายามประมวลผลข้อมูลเกี่ยวกับรายการเมื่อฉันเปิดที่บ้าน แต่เมื่อฉันฆ่ามันในขณะที่เครือข่ายไม่ว่างมันมักจะกลับมาใกล้ 100% ทันที เมื่อจำนวนสแกนเนอร์ที่แสดงใน Image Capture ลดลง (ซึ่งมักจะทำ แต่จะขัดขวางเป็นระยะด้วยเหตุผลบางประการ) icdd ในที่สุดก็จะปักหลัก และประการที่สองการลบไฟล์ deviceInfoCache.plist ทำให้ icdd ทำงานในระยะเวลาอันสั้นพอสมควร - จนกว่าจำนวนรายการจะถูกสร้างขึ้นอีกครั้ง โปรดทราบว่า icdd เก็บรักษาสำเนาของรายการเหล่านี้ในหน่วยความจำดังนั้นหากคุณลบไฟล์ออกจากบัญชีผู้ใช้ icdd เพียงแค่เขียนมันใหม่ทันที และแน่นอนว่า, คุณไม่สามารถฆ่า icdd ได้นานพอที่จะลบไฟล์ดังนั้นคุณต้องออกจากระบบและลบไฟล์จากบัญชีผู้ดูแลระบบอื่นผ่านเทอร์มินัล icdd จะสร้างไฟล์ขึ้นมาใหม่เมื่อคุณกลับเข้าสู่ระบบ แต่มันจะมีจำนวนรายการที่ค่อนข้างน้อยและทำงานได้ดีชั่วครู่หนึ่ง
เพื่อที่จะให้ความคิดเกี่ยวกับเครื่องชั่งน้ำหนักวิศวกรของ Apple ตกใจที่เห็นว่าฉันมีสแกนเนอร์ถึง 85 เครื่องที่แสดงใน Image Capture อย่างไรก็ตามบ่อยครั้งที่จำนวนนี้จะตั้งหลักแหล่งประมาณ 6 ในระบบเดียวกันและในช่วงเวลาเดียวกัน ไฟล์ deviceInfoCache.plist มีรายการระหว่าง 8,000 ถึง 12,600 รายการในระบบที่ฉันดูแล้วว่ามีปัญหาของ icdd - ฉันเป็นคนที่มีขนาดใหญ่กว่าและฉันเชื่อว่าสิ่งนี้ได้ดำเนินการจากเครื่องเก่าเนื่องจากฉันมีปัญหา icdd นับจากเวลาที่ฉันตั้งค่า MacBook Pro ใหม่ในเดือนธันวาคม 2559 เมื่อฉันลบไฟล์ plist จำนวนรายการเริ่มต้นในไฟล์ที่สร้างขึ้นใหม่คือ 44 และอีกสองสามวันการใช้งาน icdd cpu จะอยู่ใกล้กับ 0.0% อย่างไรก็ตามหลังจากนั้นประมาณ 5 วันในมหาวิทยาลัยไฟล์ plist ของฉันมี 964 รายการ และการใช้งาน cdd icdd จะเด้งเป็นประจำระหว่าง 30% ถึง 90% ในเครือข่ายไม่ว่างที่มหาวิทยาลัย เมื่อฉันอยู่ที่บ้านไฟล์ Plist จะเพิ่มจำนวนรายการโดยเพิ่มเป็น 0 ถึง 2 ตลอดระยะเวลาหนึ่งวัน จาก 12,600 รายการในไฟล์ plist ก่อนหน้าของฉันมี 2 รายการเท่านั้นที่มี "deviceName" ส่วนที่เหลือมี "iconPathLocation" ซึ่งทั้งหมดชี้ไปที่ไฟล์. icns ที่ไม่มีอยู่ ด้วย Plist ปัจจุบันยังคงมี 2 รายการที่มี "DeviceName" และที่เหลือมี "iconPathLocation" ที่ไม่มีอยู่ ทั้งหมดนี้ชี้ไปที่ไฟล์. icns ที่ไม่มีอยู่ ด้วย Plist ปัจจุบันยังคงมี 2 รายการที่มี "DeviceName" และที่เหลือมี "iconPathLocation" ที่ไม่มีอยู่ ทั้งหมดนี้ชี้ไปที่ไฟล์. icns ที่ไม่มีอยู่ ด้วย Plist ปัจจุบันยังคงมี 2 รายการที่มี "DeviceName" และที่เหลือมี "iconPathLocation" ที่ไม่มีอยู่
ดังนั้นทางออกระยะสั้นคือการลบไฟล์ plist จากบัญชีผู้ดูแลระบบอื่นผ่านเทอร์มินัลในขณะที่ออกจากระบบบัญชีผู้ใช้ของคุณ หวังว่าขณะนี้ข้อมูลนี้ได้รับการจัดหาให้แก่วิศวกรของ Apple จากที่ปรึกษาอาวุโสของฉันแล้ววิศวกรของ Apple จะมีข้อมูลเพียงพอที่จะหาสาเหตุที่ icdd แสดงวิธีนี้และแก้ไขปัญหา แน่นอนว่าอาจช่วยได้ถ้าคุณสามารถยืนยันโซลูชันระยะสั้นของฉันและรายงานสิ่งที่คุณพบกับ Apple ต่อไป