web-dev-qa-db-ja.com

Windows10でのロードダイアログディスクアクセスの速度低下

TL; DR私のハードドライブの組み合わせにより、ロードダイアログのロードに最大6秒かかります。これもコードで確認されており、何の救済も見つかりません。

私は長い間Windows7を持っていましたが、8を完全に無視していました。私が7歳である限り、非常に長い起動時間に耐えなければなりませんでしたが、それ以外はすべてのパフォーマンスに満足していました。

Windows 10がリリースされる直前に、私は弾丸を噛んでインストールしたので、少なくとも時代に遅れずについていくことができました。同時に、起動時の問題を軽減するために新しいSSDをインストールしました。すべてが思ったよりもはるかにスムーズにインストールされ、すぐに元の速度に戻りました。私の側にあるとげが1つあることを除いて、成長する痛みはほとんど存在しませんでした。ロードダイアログを表示すると、表示されるまでに5〜10秒かかることがありました。

(ジャンプして「パワープロファイル」と言う前に、ハードドライブをスピンダウンしないように設定されています。)どのプログラムがそれを実行しているかを理解するのに時間がかかったので、「たまに」とだけ言います。最初はそれがすべてだったと思いますが、Chromeなどは動作がパッチされているようです。毎回動作を生成する大きなものはGimp2.8です。私が何をしても、新しいファイルを保存するか、ロードする場合、ダイアログがポップアップするまで5〜10秒待つ必要があります。

最初はWindows10自体のバグだと思っていましたが、Chrome et alが良くなったので、Gimpの何かに違いないと思いました。これは、最初の奇妙なことではありません。そのプログラムに出くわしましたが、ハードウェアに少し近づき、Gimpのせいではないことがわかりました。

私はUnityゲームプログラミングを行っており、現在、C#(および古いMonoライブラリ)を使用した汎用の保存/読み込みダイアログに取り組んでいます。私が最初にファイルブラウザを動作させたとき、糖蜜のように遅かった-私はこれを私の側の悪い方法にチョークで書いたが、それを最適化するようになったとき、待機時間の大部分が原因であることがわかった1行のコード:

string[] drives = System.IO.Directory.getLogicalDrives();

それを測定した後、この遅延はGimpの速度低下と同等でした:5.5秒、すべてWindowsが「C:、D:、E :、およびF:ドライブがあります」と言います。私 ロードダイアログの変更をハッキングした このドライブ情報の遅延が表示されるようにし、プログラムが実行されるたびに、最大5〜6秒の遅延があることを確認しました。ハードドライブパスのリストを取得するためのシステムAPI呼び出しからの返信です。

それがどれほど悪いかを理解するために、妻のラップトップ、兄弟のラップトップ、父のデスクトップ(Windows 10では3つすべて)、母のmac mini(MacOSターゲット用に再コンパイルした後)で上記の同じプログラムを実行しました。 。それらのすべてで、遅延は数十ミリ秒であり、まさに私が期待するものです。 Mac miniは、いまいましいプログラムをロードするのに約20秒かかりましたが、実行されると、その1行のコードからハードドライブをロードするのに10分の1秒もかかりませんでした。

だから今私は途方に暮れています。電力プロファイルは、ドライブの電源を切らないように設定されています。私のBIOSはSSDのAHCIに設定されています。ページファイルを動的ではないように設定しました。インデックス作成とWindowsSearchサービスを無効にしました。すべてが最適化されています。私はWindows7を再起動して、状況を確認しました。どのプログラムにもロードダイアログラグはありませんでしたが、小さなロードツールを実行すると、ドライブをロードするのに5.5秒が一貫して表示されました。

これらの5秒間、CPU /メモリまたはディスクアクセスの大きなスパイクはないことに注意してください。これは、実行後のプログラムのスクリーンショットで、タスクマネージャーがバックグラウンドにあります: imgur link

これがディスク管理のスクリーンショットです: imgur link 。ディスク0はSSD、ディスク1は最近の1 TBドライブ、ディスク2は古いキャビアブラック1 TBドライブ、ディスク3はキャビアグリーン2 = TBドライブ(二度とありません。20分のディスクシャットオフが組み込まれています。繰り返しのテストはすべて5秒の遅延があるため、これが原因ではないと合理的に確信しています)。

誰かが私が試すことができる他の何かについて何か洞察を持っていますか?基本的に、一部のドライブを切断して起動し、個々のドライブが何らかの問題を引き起こしていないかどうかを確認します(ただし、ディスク管理でディスク0と1を除くすべてをオフラインに設定しようとしましたが、役に立ちませんでした)。どんな助けでも大歓迎です。

編集:その他の調査結果:すべてのHDDを取り外した後(ブルーレイドライブを含み、SSDが1つだけ残っている)、問題は解決しません。インターネットを完全に切断し、ネットワーク検出を無効にした後も、問題は解決しません。

また、5.5秒のマークは堅実な数字のようです。ツールの「ディスクウォーク」時間(各ディスクのディレクトリの最初のレベルが読み取られるのにかかる時間)は大きく異なりますが、ディスクの読み取り時間は常に5.550〜5.580の範囲です。これは、ある種の5.5秒のタイムアウトがどこかで発生していることを示しているようです。

編集2:2台の1TBドライブだけを接続してWindows7を起動しました。 SSDが含まれていないが含まれていない場合でも、ロード時間は5.5秒の待機時間に依存します。これにより、根本原因に関する私の主要な理論が失われます。これは、おそらくマザーボードの入力ドライバに問題があることを示唆しています。

私のハードウェア 、それが適切であることになった場合に備えて:

  • プロセッサー:AMD Phenom II X4965-ブラック
  • マザーボード:ギガバイトGA-790XTA-UD4
  • ビデオ:AMD HD 5770
  • SSD:OCZ ARC 100 240GB
  • HDD:WD Black 1TB(2013)
  • HDD:WD Green 2TB(2011)
  • HDD:WD Black 1TB(2010)
6
ketura

Gor rambusinessmanの息子。

存在しないフロッピードライブでした。誰も彼らが持っていないドライブを期待することはありません!

私のマザーボードにはフロッピーコントローラが搭載されていますが、これは明らかに、何かが接続されているかどうかを確認することがクロックサイクルの無駄と見なされていた時代からの技術です。 System.IO.Directory.GetLogicalDrives()を実行するたびに、ゴーストドライブがタイムアウトするのを待っていました。

BIOSを開いて、フロッピーを完全に無効にする設定を見つけました。これにより、問題が完全に解消されました。 Gimpも完璧にロードされるようになりました。

私はそのような破砕の良い探偵です。

6
ketura

参考までに-無効にするフロッピーディスクドライブ> フロッピーディスクドライブデバイスマネージャで動作しました。私は怠惰すぎてBIOSを再起動していじくり回すことができませんでした。

5
Nick C