Saya telah memperhatikan hal ini sering dengan unduhan besar seperti pembaruan Xcode dan pembaruan OS X dan hal semacam itu.
Pada dasarnya kami melihat ini untuk berapa banyak waktu yang diperlukan untuk mengunduh untuk melanjutkan:
Hari ini (saat ini) saya mengunduh Xcode 7.2.1.
Anda dapat melihat tersimpan unduhan tampaknya mematok seluruh inti, dan sekitar 30% dari pekerjaan ini ditangani oleh kernel.
Yang membuat saya bingung adalah apa "pekerjaan" ini? Mengapa perlu melakukan pekerjaan ini? Berapa jumlah pemrosesan yang mungkin dilakukan, karena mendekripsi aliran pada beberapa megabyte per detik tidak memerlukan sumber daya sebanyak ini. Saya bisa mengunduh file besar seperti ini menggunakan ratusan koneksi melalui internet dan menjalankan pemeriksaan integritas di atasnya (dengan protokol seperti bittorrent) dan tidak akan mendekati apa pun yang dekat dengan apa yang terjadi di sini dengan penggunaan sumber daya.
sumber
Jawaban:
Mengalami masalah yang sama hari ini ketika memperbarui XCode:
storedownloadd
mematok inti CPU selama 20 menit.Saya mencoba membobol tersimpan unduhan dengan debugger dan melihat beberapa jejak tumpukan yang sangat panjang dan banyak waktu yang dihabiskan di dalam
Security::CodeSigning
.Saya menduga bahwa itu secara rekursif memverifikasi tanda tangan digital dari banyak file kecil satu-per-satu. Saya tidak tahu mengapa itu akan melakukan itu daripada memverifikasi seluruh paket saat sedang diunduh. Saya juga melihat banyak manipulasi string di dalamnya
Security_CodeSigning::RequirementLexer::RequirementLexer
.Apa pun yang
storedownloadd
terjadi, itu terlalu lambat!sumber
Penggunaan CPU disebabkan oleh pengkodean yang ceroboh dan enkripsi / dekompresi. Insinyur menjadi sangat ceroboh dengan CPU kami di zaman notebook quad core dengan delapan core virtual.
Seseorang harus mengejar Apple tentang mengoptimalkan
storedownloadd
rutinitas. Mengingat bahwa kita harus memasang dengan jaringan yang rusak selama lebih dari setahun sampai Apple menggantikan rusak oleh desaindiscoveryd
denganmDNSresponder
.Pikiran yang lebih gelap mungkin menyarankan bahwa toko juga mengompresi data untuk diunggah dan mengirimkannya. Microsoft sering tertangkap basah melakukan hal ini tetapi saya belum melihat kasus yang terdokumentasi dalam kasus Apple.
sumber
storedownloadd
adalah mengompresi data paket dengan cara yang benar-benar intensif secara komputasi. Tidak ada banyak alasan pada saat ini untuk mencurigai sesuatu yang sangat jahatbaru saja membunuhnya di terminal ;-) ... mengambil 1,5MB / s dari broadband lambat saya
sumber