Я часто замечал это при больших загрузках, таких как обновления XCode и OS X, и тому подобное.
По сути, мы видим это в течение того времени, которое требуется для продолжения загрузки:
Сегодня (в настоящее время) я загружаю Xcode 7.2.1.
Вы можете видеть, что сохраненный файл loadownloadd выполняет привязку всего ядра, и около 30% этой работы выполняется ядром.
Что меня озадачивает, что это за «работа»? Почему это нужно сделать эту работу? Какой объем обработки он может выполнять, потому что дешифрование потока со скоростью несколько мегабайт в секунду не требует такого большого количества ресурсов. Я мог бы скачать такой большой файл, используя сотни соединений через Интернет и выполняя проверку целостности (с протоколом, подобным bittorrent), и он не приблизился бы к тому, что происходит здесь с использованием ресурсов.
источник
Ответы:
Сегодня столкнулся с той же проблемой при обновлении XCode:
storedownloadd
привязывает ядро процессора на 20 минут.Я попытался взломать storeownloadd с помощью отладчика и увидел несколько действительно длинных трассировок стека и много времени, проведенного внутри
Security::CodeSigning
.Я подозреваю, что он рекурсивно проверяет цифровые подписи множества крошечных файлов один за другим. Я понятия не имею, почему он будет делать это вместо проверки всего пакета во время его загрузки. Я также вижу много строковых манипуляций внутри
Security_CodeSigning::RequirementLexer::RequirementLexer
.Что бы ни
storedownloadd
делало, это слишком чертовски медленно!источник
Загрузка процессора вызвана как небрежным кодированием, так и шифрованием / распаковкой. Инженеры стали очень небрежными с нашим процессором в эпоху четырехъядерных ноутбуков с восемью виртуальными ядрами.
Кто-то должен преследовать Apple вокруг оптимизации
storedownloadd
рутины. Учитывая, что нам пришлось мириться с неисправной сетью более года, пока Apple не заменила сломанную по дизайнуdiscoveryd
наmDNSresponder
.Темные мысли могут предположить, что магазин также сжимает данные для загрузки и отправки. Microsoft была поймана, делая это много раз, но я не видел документированного случая в случае Apple.
источник
storedownloadd
, распаковывает данные пакета по-настоящему вычислительно интенсивным способом. На данный момент нет особых оснований подозревать что-либо особенно гнусноепросто убил его в терминале ;-) ... принимая 1,5 МБ / с от моей медленной широкополосной связи
источник