Ich habe dies oft bei großen Downloads wie Xcode-Updates und OS X-Updates und dergleichen bemerkt.
Grundsätzlich sehen wir, wie lange es dauert, bis der Download abgeschlossen ist:
Heute (zur Zeit) lade ich Xcode 7.2.1 herunter.
Sie können sehen, dass Storedownloadd anscheinend einen ganzen Kern blockiert, und ungefähr 30% dieser Arbeit wird vom Kernel erledigt.
Was mich verwirrt ist, was ist diese "Arbeit"? Warum muss es diese Arbeit machen? Welchen Verarbeitungsaufwand könnte es möglicherweise verursachen, da das Entschlüsseln eines Streams mit wenigen Megabyte pro Sekunde nicht so viele Ressourcen erfordert. Ich könnte eine große Datei wie diese mit Hunderten von Verbindungen über das Internet herunterladen und Integritätsprüfungen durchführen (mit einem Protokoll wie bittorrent), und sie würde sich nicht annähern, was hier mit der Ressourcennutzung geschieht.
quelle
Antworten:
Stieß heute beim Aktualisieren von XCode auf dasselbe Problem:
storedownloadd
Steckt einen CPU-Kern für 20 Minuten fest.Ich habe versucht, mit einem Debugger in Storedownloadd einzudringen, und habe einige wirklich lange Stack-Spuren und viel Zeit im Inneren gesehen
Security::CodeSigning
.Ich vermute, dass die digitalen Signaturen vieler winziger Dateien einzeln rekursiv überprüft werden. Ich habe keine Ahnung, warum es das tun würde, anstatt das gesamte Paket beim Herunterladen zu überprüfen. Ich sehe auch viel Saitenmanipulation im Inneren
Security_CodeSigning::RequirementLexer::RequirementLexer
.Was
storedownloadd
auch immer tut, es ist zu langsam!quelle
Die CPU-Auslastung wird sowohl durch fehlerhafte Codierung als auch durch Verschlüsselung / Dekomprimierung verursacht. Ingenieure sind im Zeitalter von Quad-Core-Notebooks mit acht virtuellen Kernen sehr nachlässig mit unserer CPU umgegangen.
Jemand sollte Apple hinterherjagen, um die
storedownloadd
Routine zu optimieren . In Anbetracht dessen, dass wir uns über ein Jahr lang mit defekten Netzwerken herumschlagen mussten, bis Apple das defekte Designdiscoveryd
durch ersetzt hatmDNSresponder
.Dunkle Gedanken könnten darauf hindeuten, dass der Speicher auch Daten zum Hochladen und Senden komprimiert. Microsoft wurde dabei oft erwischt, aber ich habe keinen dokumentierten Fall in Apples Fall gesehen.
quelle
storedownloadd
sind Dekomprimieren Paketdaten in eine wirklich rechenintensive Art und Weise. Es gibt an dieser Stelle nicht viel Grund, etwas besonders Schändliches zu vermutenHabe es gerade im Terminal gekillt ;-) ... nehme 1,5 MB / s von meinem langsamen Breitband
quelle