ทำไมการดาวน์โหลด (เก็บไว้ดาวน์โหลด) จาก Mac App Store ใช้ CPU มาก


52

ฉันสังเกตเห็นสิ่งนี้บ่อยครั้งด้วยการดาวน์โหลดจำนวนมากเช่นการอัปเดต Xcode และการอัปเดต OS X และสิ่งต่างๆ

โดยทั่วไปเราเห็นสิ่งนี้ในเวลาที่ใช้ในการดาวน์โหลดเพื่อดำเนินการต่อ:

ป้อนคำอธิบายรูปภาพที่นี่

วันนี้ (ปัจจุบัน) ฉันกำลังดาวน์โหลด Xcode 7.2.1

คุณสามารถดูที่เก็บไว้ดาวน์โหลดดูเหมือนว่าจะตรึงแกนหลักทั้งหมดและประมาณ 30% ของงานนี้ถูกจัดการโดยเคอร์เนล

สิ่งที่ฉันสับสนเกี่ยวกับคือ "งาน" นี้คืออะไร? เหตุใดจึงต้องทำงานนี้ การประมวลผลแบบใดที่สามารถทำได้เนื่องจากการถอดรหัสสตรีมที่เมกะไบต์สองสามต่อวินาทีไม่ต้องใช้ทรัพยากรจำนวนมาก ฉันสามารถดาวน์โหลดไฟล์ขนาดใหญ่เช่นนี้ได้โดยใช้การเชื่อมต่อหลายร้อยทางบนอินเทอร์เน็ตและใช้การตรวจสอบความสมบูรณ์ของข้อมูล (ด้วยโปรโตคอลเช่น BitTorrent) และจะไม่เข้าใกล้ทุกสิ่งที่เกิดขึ้นที่นี่ด้วยการใช้ทรัพยากร


1
สำหรับผู้ที่ไม่ต้องการการอัปเดตเพื่อดาวน์โหลดโดยอัตโนมัติและเพียงต้องการทำให้การใช้งาน CPU นี้หายไปให้ไปที่เมนู Apple -> การตั้งค่าระบบ -> App Store และยกเลิกการเลือกตัวเลือก "ดาวน์โหลดการอัปเดตที่พร้อมใช้งานใหม่ในพื้นหลัง" ) จากนั้นรีสตาร์ทคอมพิวเตอร์
rakslice

คำตอบ:


30

วิ่งเข้าไปในปัญหาเดียวกันในวันนี้เมื่อปรับปรุง XCode: storedownloaddหมุดแกน CPU เป็นเวลา 20 นาที

ฉันพยายามบุกเข้าไปในไฟล์ดาวน์โหลดที่เก็บไว้กับตัวดีบั๊กเกอร์และเห็นร่องรอยสแต็คที่ยาวมาก ๆ และใช้เวลานานSecurity::CodeSigningมาก

ฉันสงสัยว่ามันกำลังทำการตรวจสอบลายเซ็นดิจิตอลซ้ำ ๆ ของไฟล์เล็ก ๆ จำนวนมากแบบหนึ่งต่อหนึ่ง ฉันไม่รู้ว่าทำไมมันจะทำเช่นนั้นแทนที่จะตรวจสอบแพคเกจทั้งหมดขณะที่กำลังดาวน์โหลด ฉันยังเห็นการจัดการสตริงSecurity_CodeSigning::RequirementLexer::RequirementLexerมากมายภายใน

ไม่ว่าอะไรก็ตามstoredownloaddมันช้าเกินไป!


คุณสามารถดูเนื้อหาการติดตามสแต็กได้อย่างไร (โดยทั่วไปไม่ต้องการสัญลักษณ์แก้จุดบกพร่องหรือไม่) คุณใช้ Xcode เพื่อดีบักการจัดเก็บข้อมูลดาวน์โหลดหรือไม่ เครื่องดนตรี? คุณจะทำอย่างไร
Steven Lu

@StevenLu ใช่ฉันใช้ Xcode ฉันไม่คิดว่าฉันมีสัญลักษณ์แก้ปัญหา ชื่อฟังก์ชันอาจมาจากไลบรารีที่แบ่งใช้ซึ่งประกาศฟังก์ชันเหล่านั้น
Navin

1
แม้ว่าจะเรียบร้อย ฉันควรพยายามทำสิ่งนั้นบ่อยขึ้น ขอบคุณ
Steven Lu

2
มันกำลังทำอยู่ก่อนที่การดาวน์โหลดจะเริ่มต้น ... ดังนั้นถ้ามันตรวจสอบการเซ็นชื่อมันจะทำที่ไฟล์ในเครื่อง อาจตรวจสอบความสมบูรณ์ของการติดตั้ง xcode ในเครื่องทั้งหมดก่อนดาวน์โหลด
user2707001

1
กำลังทำเพื่อฉันตอนนี้เมื่อมีการอัปเดตที่จะดาวน์โหลด แต่มันยังไม่ได้ดาวน์โหลด ทำให้ทุกสิ่งไม่สามารถใช้งานได้ เพิ่งฆ่ามันในการตรวจสอบกิจกรรมและทำให้งานสร้างของฉันเสร็จเร็วขึ้น
Lassi Kinnunen

11

การใช้งาน CPU นั้นเกิดจากการเข้ารหัสแบบเลอะเทอะและการเข้ารหัส / การคลายการบีบอัด วิศวกรไม่ค่อยใส่ใจกับซีพียูของเรามากนักในยุคของโน้ตบุ๊กแบบ quad core ที่มีคอร์เสมือนแปดคอร์

ใครบางคนควรไล่แอปเปิ้ลไปรอบ ๆ เกี่ยวกับการปรับstoredownloaddรูทีนให้เหมาะสม พิจารณาว่าเราต้องทนกับเครือข่ายหักนานกว่าหนึ่งปีจนแอปเปิ้ลแทนที่เสียจากการออกแบบด้วยdiscoverydmDNSresponder

ความคิดที่มืดกว่าอาจแนะนำว่าร้านค้ากำลังบีบอัดข้อมูลสำหรับการอัพโหลดและส่ง Microsoft ถูกจับทำหลายครั้ง แต่ฉันไม่ได้เห็นกรณีเอกสารในกรณีของ Apple


1
ฉันคิดว่าสิ่งหนึ่งที่เราควรพิจารณาคืออาจstoredownloaddจะไม่มีการบีบอัดข้อมูลแพ็กเกจด้วยวิธีการคำนวณอย่างเข้มข้น ในตอนนี้ไม่มีเหตุผลมากนักที่จะสงสัยว่ามีสิ่งเลวร้ายโดยเฉพาะอย่างยิ่ง
Steven Lu

ขอโทษจริง ๆ ที่คุณพูดถึงมัน ดังนั้นฉันหมายความว่าฉันคิดว่าสิ่งที่น่าเชื่อถือที่สุดคือสิ่งนี้เกี่ยวข้องกับการแตกไฟล์
Steven Lu

1
Steven แม้กระทั่งการคลายการบีบอัดก็ไม่สมเหตุสมผลในช่วงระยะเวลาของการดาวน์โหลดที่ยาวนาน (โดยปกติการคลายการบีบอัดจะเกิดขึ้นเมื่อสิ้นสุดการดาวน์โหลด) การเข้ารหัสเท่านั้นที่สมเหตุสมผล ฉันคิดว่ามันเป็นสถานการณ์อย่าง Discoveryd ที่โค้ดไม่เคยได้รับการปรับให้เหมาะสม (การอ้างอิง Ars Technica แสดงให้เห็นชัดเจนว่า Apple อยู่ในการแก้ไข core OS X เป็นประจำเพียงใดแม้จะเป็นศูนย์กลางของประสบการณ์ผู้ใช้มากกว่าการดาวน์โหลดในร้าน เป็นส่วนหนึ่งของประสบการณ์ Mac โดยรวมของผู้ใช้ที่ไม่ใช่ผู้ทดสอบ)
Foliovision

มันไม่มีเหตุผลที่พวกเขาให้ความสำคัญกับงานของผู้ใช้ปกติ มันทำงานทำให้ xcode ทำมันสร้างได้ช้ากว่าบน mac ที่ทำงานช้ากว่ามาก 5 นาทีกลายเป็น 20 นาทีช้าไม่ใช่แค่ช้าลงนิดหน่อย
Lassi Kinnunen

8

เพิ่งฆ่ามันใน terminal ;-) ... รับ 1.5MB / s จากบรอดแบนด์ที่ช้าของฉัน

killall storedownloadd

ดังนั้นคุณจะไม่ได้รับการอัปเดตซอฟต์แวร์ ... ดูเหมือนจะไม่เป็นทางออกสำหรับฉัน
Calimo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.