ハイバネーションはRAMの内容をディスクに書き出すことになっており、ハイバネーションから戻ると保存された内容でRAMを埋めることになっています。休止状態からの復帰が遅いのはなぜですか。たとえば、システムはかなり一般的に非常に無反応です。
ハイバネーションはRAMの内容をディスクに書き出すことになっており、ハイバネーションから戻ると保存された内容でRAMを埋めることになっています。休止状態からの復帰が遅いのはなぜですか。たとえば、システムはかなり一般的に非常に無反応です。
回答:
主な原因はディスクI / Oです。物理ディスクの読み取りと書き込みは、RAMからの読み取りよりはるかに遅くなります。コンピュータがディスクから再開する(休止状態)場合、コンポーネントの電源を入れる必要があるため、速度が低下する可能性があります。これは、コンピューターに大きく依存しています。SSDのディスクからの再開速度は、RAMからの再開速度とほぼ同じです。一部のコンピューターでは、ラムが再び完全にいっぱいになる前にマウスを動かして、応答時間が短くなることがあります。
注:8GBのRAMと400MB / sスループットのSSDがあると仮定します。それでも8 * 1024MB / 400MB / s = 20.48sかかります。これは、RAMからの再開と同じ速度ではありません。
15,000MB / sのRAMスループットを想定すると、再開時間は0.55秒です。
Reading and writing to a physical disk is much slower than from RAM.
はい。ただし、読み取りは書き込みよりも速いので、HDDを読み取るのに書き込むよりもはるかに長い時間がかかるのはなぜですか?
それはトレードオフです。必要に応じて、休止状態になる前にRAMにあったものをすべて、ディスクからRAMに一度に、またはほんの少しずつ引き出しますか?
回転ディスクからのセクターの読み取りには、そのセクターを同じ回転ディスクに書き込むのと実質的に同じ時間、つまりシーク+回転時間がかかることは誰もが知っています。したがって、RAMからディスクへの情報の書き込み(休止状態)には、ディスクからの同じRAMの読み取り(休止状態からの再開)とほぼ同じ時間がかかることが予想されます。しかし、デマンドページングのため、そのようにはなりません。
OSが一度にすべてを取り込むと、休止状態からの再開には数十秒かかりますが、その後はまったく休止状態になっていない場合と同じように動作します。
OSプログラマは通常、代わりにデマンドページングを選択します。言い換えれば、OSは必要に応じて一度にディスクから少しだけプルします。これには、休止状態からの再開がキーボードとマウスクリックへの応答を開始するまでの時間がはるかに短いという利点があります。一方、休止状態の後に初めて何かを使用する場合、OSが最終的にそれをロードするまでにわずかではあるが顕著な遅延があります。これは、「初めて」何かを使用する場合でも、休止状態の数分後に発生します。そのため、休止状態から再開した後(つまり、休止状態の直前の画面とほぼ同じ画面が表示された後)、マシンでの作業がしばらく遅くなることがあります。
Synetechが指摘したように、人間の心理学も少し関与しています。休止状態の開始時に画面がすぐにオフになるため、すぐにシャットダウンするようです。そして、ユーザーはあなたがやりたいことをすぐに続けることができます。しかし、休止状態からの再開後、ユーザーは何かをしようとしていますが、ユーザーがしようとしていることを邪魔するため、少しの遅れは迷惑です。
あなたが言っていることがわかります。休止状態から復帰した後、HDD LEDが長時間点滅するように見えます。
ハードウェアの起動(およびドライバーアクセラレーション)による遅延と断片化(工場からの新しいシステムは一般に休止状態になり、しばらく使用されていたものがかなり速く再開することに気付くでしょう)そうするのがはるかに遅くなります)。この動作については、さらにいくつかの説明があります。
休止状態になると、WindowsはRAMをドライブにフラッシュします。RAMの読み取りとディスクへの書き込みが高速であるにもかかわらず(大きな空のドライブで休止状態ファイルが最適化されている場合でも)、数ギガバイトの書き込みにはまだかなり時間がかかります(少量のRAMでシステムを休止状態および再開することに気付くでしょう)非常に高速です)。画面はすぐに消えますが、ドライブ(およびマザーボード、ファンなど)はすべて、RAMのディスクへのフラッシュが完了するまでしばらくの間動作し続けます。(HDDを搭載したラップトップが終了し、ドライブが完全にオフになるまで、ラップトップを捨てないでください)。
いくつかの実験的なテストを行って、Hibernateをクリックしてからシステムの電源が切れるまでの時間と、Resuming Windows画面が表示されてからHDD LEDの点滅が止まるまでの時間を測定できます。それらはほぼ等しいでしょう。(Windowsは、最初にカーネルとスタッフを休止状態ファイルに書き込んでから読み取ることにより、休止状態から非常に高速に再開するように見せかけます。これにより、すぐに起動して実行し、残りのファイルを引き続き読み込みます。バックグラウンドおよび必要に応じて、すべて再開されるまで。ログイン画面が非常にすばやく表示されるため、この動作を実際に見ることができます。
それでは、再開に時間がかかるように見えるのはなぜですか。これには2つの説明があります。
それは心理的です。Danが指摘したように、休止状態になるとすぐに画面がオフになるため、再開プロセス全体(画面を開くとHDD LEDが点滅している)が表示されている間、高速でシャットダウンするようです。
ページングです。ほとんどの人は、プログラムの終了を避けたいため、シャットダウンの代わりに休止状態を使用するため、中断したところから再開できるため、Windowsを再開すると、すでに実行され、既にメモリを消費しているプログラムがたくさんあります。Windowsのメモリマネージャがシステムを最後にチェックしてからかなりの時間が経過したため、その観点からは、いくつかのプログラムがしばらく休眠していたため、多くのメモリスワッピングが行われる可能性がありますアクティブになります。もちろん、この交換には時間がかかり、しばらくドライブをスラッシングします。
最終結果は、ハードウェアのアクティブ化、ページング、心理学、および断片化の間の要因と相互作用の組み合わせである可能性があります。
それまでは、プロセスモニターを使用してWindowsが休止状態および再開中にドライブ/ファイルアクティビティを観察するなど、いくつかの簡単なテストを実行することにより、ボトルネックが何であるかを(少なくともシステム上で)明確に見つけることができます。スラッシングはhiberfil.sys
またはへのアクセスが原因pagefile.sys
です。