Mac App Storeからのダウンロード(storedownloadd)がCPUを大量に消費するのはなぜですか?


52

Xcodeの更新やOS Xの更新などの大規模なダウンロードでは、これによく気づきました。

基本的に、ダウンロードの進行に時間がかかるにもかかわらず、これが表示されます。

ここに画像の説明を入力してください

今日(現在)Xcode 7.2.1をダウンロードしています。

storedownloaddはコア全体をペグしているように見え、この作業の約30%がカーネルによって処理されています。

私が困惑しているのは、この「仕事」とは何ですか?なぜこの作業を行う必要があるのですか?1秒間に数メガバイトでストリームを復号化するのにこれほどのリソースは必要ないため、どの程度の量の処理を実行できますか。私はインターネット上の数百の接続を使用してこのような大きなファイルをダウンロードし、(bittorrentのようなプロトコルで)整合性チェックを実行することができますが、リソースの使用でここで起こっていることに近い場所には近づかないでしょう。


1
更新を自動的にダウンロードする必要がなく、このCPU使用率を消したい場合は、Appleメニュー->システム環境設定-> App Storeに移動し、オプション「バックグラウンドで新しく利用可能な更新をダウンロード」(El Capitan )その後、コンピューターを再起動します。
rakslice

回答:


30

XCodeの更新時に今日同じ問題に遭遇しましstoredownloaddた。CPUコアを20分間ペグします。

デバッガーを使用してstoredownloaddに侵入しようとすると、いくつかの非常に長いスタックトレースと多くの時間が内部で費やされましたSecurity::CodeSigning

多数の小さなファイルのデジタル署名を1つずつ再帰的に検証していると思われます。ダウンロード中にパッケージ全体を検証するのではなく、なぜそうするのか、私にはわかりません。内部で多くの文字列操作も見Security_CodeSigning::RequirementLexer::RequirementLexerます。

何をするにstoredownloaddしても、遅すぎる!


スタックトレースの内容をどのように確認できましたか?(通常、デバッグシンボルは必要ありませんか?)storedownloaddのデバッグにXcodeを使用しましたか?楽器?どうやってやるの?
スティーブンルー

@StevenLuええ、Xcodeを使用しました。デバッグシンボルがあるとは思わない。関数名は、おそらくそれらの関数を宣言する共有ライブラリーから来たものです。
ナビン

1
しかし、それはきちんとしています。もっと頻繁にやろうとするべきです。ありがとう
スティーブンルー

2
ダウンロードを開始する前にそれを行っているため...コード署名をチェックする場合、ローカルファイルで実行します。ダウンロードする前に、ローカルのXcodeインストール全体の整合性をチェックしているのでしょうか?
user2707001

1
ダウンロードする更新がある場合、それは今私のためにやっていますが、まだそれらをダウンロードしていません。すべての境界線が使用できなくなります。アクティビティモニタでそれを強制終了し、その日のビルドをより早く完了させました。
ラッシーキヌ

11

CPU使用率は、ずさんなコーディングと暗号化/圧縮解除の両方が原因です。8つの仮想コアを備えたクアッドコアノートブックの時代に、エンジニアはCPUについて非常に不注意になりました。

誰かがstoredownloaddルーチンを最適化することについてAppleを追いかけるべきです。Appleが壊れた設計をに置き換えるまで、1年以上も壊れたネットワークに我慢しなければならなかったことを考慮しdiscoverydmDNSresponder

暗い考えは、ストアがアップロードと送信のためにデータを圧縮していることを示唆しているかもしれません。マイクロソフトはこれを何度も行っていますが、Appleの事例で文書化された事例を見たことはありません。


1
私たちは検討すべき一つのことは多分ということだと思うstoredownloadd解凍本当に計算集約的な方法でパッケージデータ。特に非道な疑わしいものには、この時点ではあまり理由はありません
スティーブン・呂

申し訳ありませんが、実際に言及しました。ですから、最も妥当なことは、これがファイルの解凍に関係しているということです。
スティーブンルー

1
スティーブン、長時間のダウンロードの間は、解凍でさえ意味がありません(通常、ダウンロードの最後に解凍が行われます)。意味があるのは暗号化だけです。コードが適切に最適化されていないことが発見されたような状況だと思います(Ars Technicaの引用は、AppleがコアOS Xルーチンを修正することの背後にあることを明確に示しています。テスター以外のユーザーのMacエクスペリエンス全体の大きな部分を占めます)。
Foliovision

しかし、彼らが通常のユーザータスクよりも優先することは意味がありません。実行すると、Xcodeが実行され、低速のMacではビルドが大幅に遅くなります。わずかに遅くなるだけでなく、5分から20分遅くなります。
ラッシーキヌ

8

ターミナルでそれを殺しました;-) ...私の遅いブロードバンドから1.5MB /秒を取ります

killall storedownloadd

だから、あなたはソフトウェアの更新を取得しません...私には解決策のようには聞こえません。
カリモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.