He notado esto a menudo con grandes descargas como actualizaciones de Xcode y actualizaciones de OS X y ese tipo de cosas.
Básicamente, vemos esto por el tiempo que tarde en continuar la descarga:
Hoy (actualmente) estoy descargando Xcode 7.2.1.
Puede ver que storedownloadd parece estar vinculando un núcleo completo, y el núcleo maneja alrededor del 30% de este trabajo.
Lo que me sorprende es qué es este "trabajo". ¿Por qué necesita hacer este trabajo? ¿Qué cantidad de procesamiento podría estar haciendo? Porque descifrar un flujo a unos pocos megabytes por segundo no requiere tantos recursos. Podría estar descargando un archivo grande como este usando cientos de conexiones a través de Internet y ejecutando verificaciones de integridad (con un protocolo como bittorrent) y no se acercaría a lo que sucede aquí con el uso de recursos.
fuente
Respuestas:
Se encontró con el mismo problema hoy al actualizar XCode:
storedownloadd
vincula un núcleo de CPU durante 20 minutos.Traté de entrar a storedownloadd con un depurador y vi algunos rastros de pila realmente largos y mucho tiempo dentro
Security::CodeSigning
.Sospecho que está verificando recursivamente las firmas digitales de muchos archivos pequeños uno por uno. No tengo idea de por qué haría eso en lugar de verificar todo el paquete mientras se está descargando. También veo mucha manipulación de cadenas dentro
Security_CodeSigning::RequirementLexer::RequirementLexer
.Lo
storedownloadd
que sea que haga, ¡es demasiado lento!fuente
El uso de la CPU es causado tanto por la codificación descuidada como por el cifrado / descompresión. Los ingenieros se han vuelto muy descuidados con nuestra CPU en la era de los portátiles de cuatro núcleos con ocho núcleos virtuales.
Alguien debería perseguir a Apple para optimizar la
storedownloadd
rutina. Teniendo en cuenta que tuvimos que aguantar a la red no funciona desde hace más de un año hasta que Apple reemplazó el roto por el diseñodiscoveryd
conmDNSresponder
.Pensamientos más oscuros podrían sugerir que la tienda también está comprimiendo datos para cargarlos y enviarlos. Microsoft fue sorprendido haciendo esto muchas veces, pero no he visto un caso documentado en el caso de Apple.
fuente
storedownloadd
es descomprimir los datos del paquete de una manera computacionalmente intensiva. No hay muchas razones en este momento para sospechar algo particularmente nefastoacabo de matarlo en la terminal ;-) ... tomando 1.5MB / s de mi banda ancha lenta
fuente