¿Por qué las descargas (Storesownloadd) de la Mac App Store consumen tanta CPU?

48

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 demore la descarga:

Hoy(actualmente)estoydescargandoXcode7.2.1.

Ustedpuedeverqueelcontenidodeownownloaddpareceestarenlazandounnúcleocompleto,yaproximadamenteel30%deestetrabajoesmanejadoporelkernel.

¿Porquéestoydesconcertadosobrequéeseste"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 utilizando cientos de conexiones a través de Internet y ejecutando controles de integridad en él (con un protocolo como bittorrent) y no se acercaría a nada de lo que está sucediendo aquí con el uso de recursos.

    
pregunta Steven Lu 03.02.2016 - 19:42

3 respuestas

28

Se produjo el mismo problema hoy al actualizar XCode: storedownloadd fija un núcleo de CPU durante 20 minutos.

Intenté acceder a storageownloadd con un depurador y vi algunos rastros de pila realmente largos y pasé mucho tiempo dentro de Security::CodeSigning .

Sospecho que está verificando de forma recursiva 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 a medida que se descarga. También veo mucha manipulación de cadenas dentro de Security_CodeSigning::RequirementLexer::RequirementLexer .

Lo que haga storedownloadd , ¡es demasiado lento!

    
respondido por el Navin 13.04.2016 - 11:03
11

El uso de la CPU se debe tanto a la codificación descuidada como al cifrado / descompresión. Los ingenieros se han vuelto muy descuidados con nuestra CPU en la era de las notebooks de cuatro núcleos con ocho núcleos virtuales.

Alguien debería perseguir a Apple para optimizar la rutina storedownloadd . Teniendo en cuenta que tuvimos que aguantar red interrumpida por más de un año hasta que Apple reemplazó el roto por el diseño discoveryd con mDNSresponder .

Los pensamientos más oscuros podrían sugerir que la tienda también está comprimiendo los datos para cargarlos y enviarlos. Microsoft era Me sorprendí haciendo esto muchas veces, pero no he visto un caso documentado en el caso de Apple.

    
respondido por el Foliovision 16.03.2016 - 00:35
7

acaba de matarlo en la terminal ;-) ... tomando 1.5MB / s de mi banda ancha lenta

killall storedownloadd
    
respondido por el Thomas Webb 14.09.2016 - 12:05

Lea otras preguntas en las etiquetas