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

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

TL;DR 私のハード ドライブの組み合わせにより、読み込みダイアログの読み込みに約 6 秒かかるようになりました。これはコードでも確認されており、解決策が見つかりません。

私は長い間 Windows 7 を使っていて、8 はまったく無視していました。7 を使っていた間は起動に非常に長い時間がかかりましたが、それ以外はすべてのパフォーマンスに満足していました。

Windows 10 がリリースされる直前に、せめて時代の流れに遅れないようにしようと思い切ってインストールしました。同時に、起動時の悩みを軽減するために、インストール用の新しい SSD も購入しました。すべてが期待していたよりもずっとスムーズにインストールされ、すぐに元の速度に戻りました。成長痛はほとんど感じられませんでしたが、1 つだけ問題がありました。それは、ロード ダイアログを表示すると、表示されるまでに 5 ~ 10 秒ほどかかることがありました。

(「パワー プロファイル」と飛びつく前に、それは違います。ハード ドライブを決してスピン ダウンしないように設定されています。) 「ときどき」と言ったのは、どのプログラムがそれを引き起こしているのかを把握するのに時間がかかったからです。最初はすべてのプログラムが原因だと思いましたが、Chrome やその他のプログラムでは、その動作が修正されたようです。毎回同じ動作が発生する大きな問題は Gimp 2.8 です。何をしても、新しいファイルを保存するか、読み込みに進むと、ダイアログが表示されるまで 5 ~ 10 秒待たなければなりません。

最初は Windows 10 自体のバグだと思ったのですが、Chrome などが改善したので、Gimp の問題に違いないと考えました。Gimp で遭遇した奇妙な現象はこれが初めてではありません。しかし、ハードウェアにもう少し近づいてみると、Gimp のせいではないことがわかりました。

私は Unity ゲーム プログラミングをしており、現在は C# (および古い Mono ライブラリ) を使用して汎用の保存/読み込みダイアログを作成中です。ファイル ブラウザーを初めて動作させたときは、非常に遅かったです。これは自分のやり方が悪かったためだと思っていましたが、最適化を進めていくうちに、待機時間の大部分が 1 行のコードによって発生していることがわかりました。

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

測定してみると、この遅延はGimpの速度低下と同等で、Windowsが「C:、D:、E:、F:ドライブがあります」と表示するのに5.5秒もかかっていました。ロードダイアログの修正をハッキングしましたそのため、このドライブ情報の遅延が表示され、プログラムが実行されるたびに約 5 ~ 6 秒の遅延が発生することが確認されました。ハード ドライブ パスのリストを取得するためのシステム API 呼び出しからの応答を聞くだけです。

これがどれほどひどいことか、理解するために、私は上記のリンクと同じプログラムを、妻のラップトップ、弟のラップトップ、父のデスクトップ (3 台とも Windows 10)、母の Mac mini (MacOS ターゲット用に再コンパイル後) で実行しました。どのマシンでも、遅延は数十ミリ秒で、まさに予想どおりでした。Mac mini では、このいまいましいプログラムを読み込むだけで約 20 秒かかりましたが、いったん実行すると、その 1 行のコードからハード ドライブを読み込むのに 10 分の 1 秒もかかりませんでした。

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

この 5 秒間に、CPU/メモリまたはディスク アクセスの急激な増加は発生していないことに注意してください。以下は、タスク マネージャーがバックグラウンドで実行されている、プログラム実行直後のスクリーンショットです。imgurリンク

以下はディスク管理のスクリーンショットです。imgurリンクディスク 0 は SSD、ディスク 1 は最近の 1 TB ドライブ、ディスク 2 は古い Caviar Black 1 TB ドライブ、ディスク 3 は Caviar Green 2 TB ドライブです (二度と使用しません。20 分間のディスク シャットオフが組み込まれています。繰り返しテストを行ってもすべて 5 秒の遅延があるため、これが原因ではないことはほぼ確実です)。

他に試せることについて、何かご存知の方はいらっしゃいますか? 基本的には、ドライブの一部を取り外した状態で起動して、個々のドライブが何らかの問題を引き起こしているかどうかを確認するしかありません (ただし、ディスク管理でディスク 0 と 1 以外のすべてをオフラインに設定しようとしましたが、効果はありませんでした)。どなたか助けていただければ幸いです。

編集:さらに発見したこと: すべての HDD (ブルーレイ ドライブを含む、SSD が 1 つだけ残る) を取り外した後も、問題は解決しません。インターネットを完全に切断し、ネットワーク検出を無効にしても、問題は解決しません。

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

編集2:2台の1TBドライブを接続した状態でWindows 7を起動しました。読み込み時間は依然として5.5秒の待機時間に依存しています。それなしSSD が関係しており、根本原因に関する私の主な理論が否定されました。これは、おそらくマザーボードの入力ドライバーに問題があることを示唆しています。

私のハードウェア念のため、関連があるかどうか確認します。

  • プロセッサ:AMD Phenom II X4 965-ブラック
  • マザーボード:ギガバイト GA-790XTA-UD4
  • ビデオ:AMD HD5770 グラフィックス
  • SSD:OCZ ARC 100 240GB
  • ハードディスク:WD ブラック 1TB (2013)
  • ハードディスク:WD グリーン 2TB (2011)
  • ハードディスク:WD ブラック 1TB (2010)

答え1

ゴアラム息子のビジネスマン

それは存在しないフロッピードライブ誰も、自分にない意欲を期待することはありません。

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

BIOS を開いて、フロッピーを完全に無効にする設定を見つけたので、問題は完全に解消されました。Gimp も問題なく読み込まれるようになりました。

私は本当に優秀な探偵だ。

答え2

参考までに -- 無効化フロッピーディスクドライブ>フロッピーディスクドライブデバイス マネージャーでの設定は私の場合はうまくいきました。再起動して BIOS をいじるのは面倒でした。

関連情報