WindowsVistaはなぜ遅いのか

残念ながらあまり評判が芳しくないWindowsVistaですが、その主な原因は「WindowsVistaは動作が遅い」ということにあります。

 

ではなぜWindowsVistaがこんなにも動作が遅くなるのでしょうか?

 

もし時間とお金に余裕がある人は、WindowsXPとWindowsVistaのどちらにも対応可能な全く同じパソコンを2台並べて、それぞれにWindowsXPとWindowsVistaをインストールし、同時に動作させて見てください。

 

たぶん圧倒的にWindowsVistaの動作が遅いことに気づくと思います。

 

多機能が故に動作が重くなるのがVistaの欠点

なぜ、WindowsVistaはWindowsXPと比較してここまでも動作が遅くなってしまうのか?その理由としては色々なことがあげられますが、その要因の1つとしてWindowsVistaではバックグラウンドで色々なタスクが動いているということがあります。

 

バックグラウンドタスクとは、例えるならば、デスクトップに直接実行されるようなアプリケーションではなく、文字通り姿を潜めてこっそりとOSの内側で動いているタスクのことです。

 

これらのバックグラウンドタスクがWindowsVistaでは非常に多く、OSを起動しHDDを使い始めると、結果としてフォアグラウンドタスク(バックグラウンドタスクに対してOSの前面で実行されているタスク)の動きを極端に押さえ込んでしまうことです。

 

WindowsVistaでは上述の通りバックグラウンドタスクが非常に多く、その大半が一般のユーザにとってはあまり重要でない機能であることが多いのです。

 

つまり、このバックグラウンドタスクを無効にしてやるだけでWindowsVistaの動作速度を大幅に改善することができます。

 

しかし、これらのことは全くのパソコン初心者ユーザには少しハードルの高い作業ともいえるかもしれないのが、WindowsVistaが不評を買う理由の一つではないでしょうか。

 

バックグラウンドタスクが足を引っ張ってしまう理由

なぜWindowsVistaでは、動作を非常に遅くさせる程多くの労力が、バックグラウンドタスクによって費やされているのでしょうか。

 

その理由の1つとしては、近年の大幅なCPUの技術の進歩にあります。2001年に米インテル社が「ハイパースレッディング」という機能を世に送り出しました。
「ハイパースレッディング」は物理的には1つのCPUでパソコンが動作していても、ソフトウエア側からは2つのCPUで動作しているように見せかける機能です。

 

インテルはこの機能によって大幅なCPUの製造改善を図りました。また2005年以降には1つのCPUの中に2つのコアを搭載したデュアルコアCPUが登場し人気を得ました。

 

さらに近年では、同じく1つのCPUの中に4つのCPUを搭載した「クアッドコア」などが市場に登場し、近年ますますCPUの重要性は非常に高まっています。このような流れから、ソフトウエア開発技術者は否が応でもこれらのCPUに対応したアプリケーションを開発する必要が出てきました。

 

CPUの大幅な進化が招いたこと

CPUのコアが増えると、同時並行して色々なプログラムを実行させることが可能になるのですが、基本的にプログラミングはシングルスレッドプログラミング(A→B→Cなどの順番処理)で書かれています。

 

それをマルチスレッドプログラム(複数の処理を並列して走らせるような機能をもったプログラム)を実行しようとすると、厳密にきっちりと同期化していない限り、期待にそうような結果が得られなかったり、プログラムが暴走してしまったり等、プログラミングの難易度が非常に上がります。

 

そこで、マルチスレッディングプログラミングのかわりに、シングルスレッドプログラミングを複数同時に動かしてしまおうという発想が生まれてきます。

 

そうすることでCPUの性能を持て余すことの無く発揮できると考えられるためです。これがWindowsVistaの思想のもとになっていると考えられます。

 

これらのシングルスレッドプログラムを幾つも並列に処理をさせようとすると「それぞれを別々にバックグラウンドで動作させる」という結論にたどり着き、WindowsVistaは実際にそういった実装方法になっているのかと思われます。このようにしてWindowsVistaはCPUのマルチコアを効率的に活用しているのかと思います。

 

CPUの進化が逆方面の足かせに

しかしここで考えなければならないことは、コンピューターのスピードアップにはCPUの性能が非常に重要なファクターになることはもはや言うまでも無いのですが、CPUだけがコンピュータのスピードアップに重要なわけではないのです。

 

現にデュアルコアやクアッドコアのCPUを搭載したWindowsVistaOSがインストールされているパソコンで、非常に高付加で動作が遅くなっているな、と感じるような状態でも、2つのコアがフル稼働になって、CPUの使用率が100%に到達することはあまり無く、それよりもハードディスクからのデータの読み書きに時間がかかっているのかと思われます。

 

もちろんWindowsVistaにも、このハードディスクからのデータの読み込みをスピードアップさせるための配慮は成されていて、WindowsVista上に搭載されているメインメモリの一部分を「キャッシュメモリ」として使用し、そこに一時的な情報を蓄えてディスクアクセスへの負担を軽減させようという努力はしています。

 

しかしながら、キャッシュメモリはその言葉通り、一時的なデータの格納場所に過ぎず、まだ読み込んでいないデータを読み出す場合は、当然HDDへのアクセスが必要になりますし、データを保存するなどの場合は、そのデータは時間差こそあるものの必ずディスクドライブ上に書き込まれなければならず、結果的にはディスクアクセスは発生してくるのです。

 

逆に言えば、HDDへのアクセス速度が早くなればWindowsVistaが高速化する可能性はあるのですが、現時点ではこの点がボトムネックとなって、OS自体の動作を重くしているといえるでしょう。

 

最近はSSDなども普及してきたため、この点は改善されるかもしれませんが、すでに次世代OSであるWindows7が待たれる中においては、もうWindowsVistaが大きな注目を集める事はないような気がします。