Zauważyłem to często przy dużych pobraniach, takich jak aktualizacje Xcode i aktualizacje OS X i tego typu rzeczy.
Zasadniczo widzimy to przez jak długo trwa pobieranie:
Dzisiaj (obecnie) pobieram Xcode 7.2.1.
Widać, że zapisany downloadd wydaje się ustalać cały rdzeń, a jądro obsługuje około 30% tej pracy.
Zastanawiam się, czym jest ta „praca”? Dlaczego musi to wykonać? Jakiego rodzaju przetwarzanie mogłoby to być możliwe, ponieważ odszyfrowanie strumienia z prędkością kilku megabajtów na sekundę nie wymaga tak dużych zasobów. Mógłbym pobierać taki duży plik za pomocą setek połączeń przez Internet i przeprowadzać na nim kontrole integralności (z protokołem takim jak bittorrent) i nie zbliżyłoby się to do tego, co dzieje się tutaj z wykorzystaniem zasobów.
źródło
Odpowiedzi:
Napotkałem ten sam problem dzisiaj podczas aktualizacji XCode:
storedownloadd
unieruchamia rdzeń procesora przez 20 minut.Próbowałem włamać się do downloaddownloaded za pomocą debuggera i zobaczyłem naprawdę długie ślady stosu i dużo czasu spędzonego w środku
Security::CodeSigning
.Podejrzewam, że rekurencyjnie weryfikuje podpisy cyfrowe wielu małych plików jeden po drugim. Nie mam pojęcia, dlaczego miałoby to zrobić, zamiast weryfikować cały pakiet podczas pobierania. Widzę też wiele manipulacji na łańcuchach
Security_CodeSigning::RequirementLexer::RequirementLexer
.Cokolwiek
storedownloadd
robi, to jest zbyt cholernie wolne!źródło
Wykorzystanie procesora jest spowodowane zarówno niechlujnym kodowaniem, jak i szyfrowaniem / dekompresją. Inżynierowie stali się bardzo nieostrożni dzięki naszemu procesorowi w dobie czterordzeniowych notebooków z ośmioma rdzeniami wirtualnymi.
Ktoś powinien gonić Apple za optymalizacją
storedownloadd
rutyny. Biorąc pod uwagę, że musieliśmy znosić złamane sieci przez ponad rok , aż jabłko otrzymuje złamane przez projektdiscoveryd
zmDNSresponder
.Ciemniejsze myśli mogą sugerować, że sklep kompresuje również dane do przesłania i wysłania. Microsoft był przyłapany na robieniu tego wiele razy, ale nie widziałem udokumentowanej sprawy w sprawie Apple.
źródło
storedownloadd
jest dekompresowanie dane pakietowe w naprawdę obliczeniowo sposób. W tym momencie nie ma zbyt wielu powodów, by podejrzewać coś szczególnie niegodziwegowłaśnie zabiłem go w terminalu ;-) ... biorąc 1,5 MB / s z mojego wolnego łącza szerokopasmowego
źródło