web-dev-qa-db-ja.com

Windowsは時間の経過とともに徐々に遅くなりますが、なぜUbuntuは動かないのですか?

私と他の多くの以前のWindowsユーザーは、コンピューターが時間の経過とともに徐々に遅くなるように見えることに気付きました。 leapfrog crammerを購入したのは、インストールされたプロセスを見つけるためだけで、ソフトウェアを実行できるように私がcrammerを接続するのを待っていました。 CPU 24の3パーセント、週7日間!これがWindowsを離れた主な理由の1つです。しかし、Ubuntuは時間の経過とともに遅くなることはありません。 Ubuntuでは、リープフロッグ・クラマーがリーチのようにそこに座ってリソースを吸い取るようなプログラムをバックグラウンド・プログラムにインストールできますか?誰かがWindowsが時間とともに遅くなる傾向がある理由を説明できますか?Ubuntuもこれに対して脆弱です?助けてくれてありがとう、これは私を困惑させています。

15
William

私の意見では、最も重要な理由は、Windows上のプログラムのほとんどがregistryに依存していることです。レジストリはおそらく十分に整理されたストレージですが、非常に効率的なストレージであるとは知られていません。 Windowsを初めてインストールするとき、レジストリのサイズは小さく、検索操作は安価です。ただし、より多くのプログラムをインストールすると、レジストリが大きくなり、管理が難しくなります。

別の要因は、ディスクの断片化です。 NTFSとFATは、断片化を防ぐことができないことで非常に有名です。一方、Linuxファイルシステム、特にext3(私はreiserFSやその他の代替の経験はありません)は断片化に対して非常に回復力があります。

フラグメンテーションに関する短い入門書

フラグメンテーションとは何ですか? この記事 はそれを説明するのに良い仕事をしますが、その要点は次のとおりです:Windowsはディスク上のすべてのファイルを1か所にまとめ、Linuxはそれらをすべての場所に広げます。つまり、Windowsでファイルが大きくなると、次のファイルのハードディスク割り当てと重複するほど大きくなるリスクがあるため、移動するか(おそらく)フラグメント化して、新しいフラグメントをハードドライブ上の別の場所。次回そのファイルにアクセスするとき、Windowsは実際にtwoディスクアクセスを行う必要があります。1つは初期ファイル用で、もう1つは新しく作成されたフラグメント用です。一方、Linuxでファイルが大きくなると、そのために十分なスペースがあることが多く、OSは順調に進みます。 Linuxの方法には、機械的なハードディスクに小さな欠点があります。つまり、ファイルがいたるところに散らばっているため、一連の「まとまった」ファイルにアクセスするのに少し遅れがあります。 e4rat プロジェクトは、これらの遅延(ext4ファイルシステムのみ)の一部を除去または削減するためにかなりうまく機能します。また、発生するオーバーヘッドは、Windowsがファイルの断片化によって経験するものより悪くなりません。

もう1つの要因は、Windowsが引っ張る小さなトリックです:Windowsのインストールは、起動時に決して起動しません。Windowsは多くのプロセスを開始しますafterログインします。Windows、特にXP以前の古いバージョンでは、システムプロセスとユーザープロセスの区別が少しあいまいです。また、多くのWindowsアプリケーションは、バックグラウンドプロセスを開始し、トレイアイコンを配置することに非常に熱心です。やがて、Windowsインストールは起動時にますます多くのプロセスを開始し始めます。ただし、Linuxはログインする前にすべてのシステムプロセスを厳密に開始します。ログインすると、最小限のプロセスのみが開始されます。 Linuxはまた、特定のユーザーの特定のタスクに関連するバックグラウンドサービスの使用、またはトレイアイコンの使用を決して奨励していません。 Gnomeの最後のバージョンでは、非常に狭いホワイトリストを除き、トレイアイコンを配置するすべてのアプリケーションが拒否されます。そのため、Linuxインストールは、起動後も限られた数のプロセスのみを開始します。

私はこの現象に寄与する他の多くの要因があると確信しています。これらは私の頭に浮かぶ主要な要因です。

22

実際にタッチスクリーンテクノロジーとマイクロソフトがどのようにアプローチするかについて特別なプレゼンテーションを行っているマイクロソフトの従業員にこれを一度提起しました。彼女が私に与えた最高の応答は、「Windowsのスローダウンはオペレーティングシステムによるフラグメンテーションが発生します。これがなぜ発生するのか、どのように解決するのかについて、私たちはまだかなり研究しています。」

Ubuntuがパッケージ管理と構成を処理する方法とWindowsの方法を比較する方法に違いがあるのではないかと思いますが、これ以上説明することはできません。 Windowsのソースコードにアクセスして、なぜそのように振る舞うのかを説明できない場合、完全に知ることはできません。

それに、6か月ごとの新しいUbuntuリリースでは、毎回新しいコピーをインストールすると、潜在的な速度低下に気付くのに十分な時間がリリース間にない場合があります。または、Ubuntuの肥大化が少ないため、問題が発生する可能性が低くなっている可能性もあります。

すべてのアプリケーションには、十分に制御されていないインストーラーが付属しているため、Windowsは遅くなります。たとえば、インストールスクリプトを作成する人は、削除したときにプログラムが何を残すかを本当に気にしません。削除すると、もはや顧客ではなくなるからです。もっと悲観的な人は、おそらく100%間違いではなく、より頻繁にアップグレードするように意図的にそれをすると言います。

また、レジストリは大きな問題であり、SSDでこれが大幅に改善されることを願っていますが、障害とボトルネックの非常に集中化されたポイントです。システムがハードウェア情報を必要とするたびに、レジストリにアクセスします。アプリケーションを起動するたびに、レジストリから情報を取得する必要があります。最初にインストールされたとき、Microsoftは、レジストリが残ることを期待しているので、レジストリはあるべき姿です。しかし、インストールするものはすべて、レジストリに対する動作に対してほぼ自由に支配されているため、不要なエントリを削除するメカニズムがないため、すべてが非常に高速で混雑します。

Ubuntuは確かに速度低下に対しても脆弱です。ただし、一部のアプリケーションで共有されるgnome構成ファイルを除き、ほとんどのアプリケーションは独自の.confファイルを使用します。ただし、.debの構造は、ハードドライブ上にあるものはすべて正しいコマンドで削除できることを意味します。また、構成ファイルを削除するために「apt-get remove --purge ...」を発行しなくても、リソースを食い尽くさないテキストファイルがユーザーディレクトリに残ります。 100キロバイトのハードドライブ領域。より多くのサービスを開始するとUbuntuの起動時間に影響を与える可能性がありますが、ハードドライブのボトルネックを最小限に抑えるために重要な起動コンポーネントの場所を最適化するなど、いくつかのトリックを使用します。また、Linuxを使いこなせば、それで終わりです。他のトレイアイコンが起動するのを待つ必要はありません。

本質的に問題はレジストリです。これは、ウィンドウの多くの側面に非常にリアルタイムのボトルネックをもたらすためです。

2
M.D.

質問の前提は、ソフトウェアをインストールするためのまったく異なるモデルを備えた異なるオペレーティングシステムであるため、実証するのはおそらく難しいと思います。そのため、リンゴとリンゴを比較することは困難です。

Windows alwaysは遅くなり、Ubuntu neverは遅くなると言うほど一般的だとは思いません。

時間の経過とともにパフォーマンスが低下する可能性のあるものを次に示します。

  • ディスクの断片化、ファイルシステムの効率、TRIM

    注:I do n'tフラグメンテーションは実際にこの効果に大きく寄与すると考えています。多くの人がフラグメンテーションを行うと仮定するため、私はそれについて話しています。

    ディスクが使用されると、ファイルの書き込み、サイズ変更、削除がランダムに行われ、ドライブ全体にランダムなギャップが残ります。ファイルシステムは、書き込まれるすべての新しいファイルのスペースを効率的に見つける必要があります。ファイルシステムの断片化が進み、空き領域が少なくなると、これはより難しくなり、遅くなります。従来のハードドライブでは、これはディスク上のファイルの物理的な場所に関連していますが、SSDではこれは既にドライブファームウェアによって抽象化されているため、書き込みを組み合わせて空きブロックを追跡するためのドライブのアルゴリズムに関連しています。

    従来のHDDでは、後のファイルシステムの実装(ext4など)は、NTFSの以前の実装よりも空き領域の追跡とほぼ完全なドライブへの対処がわずかに優れているだけかもしれませんが、NTFS自体はWindows 7などのOSを改善していることに注意してください、8などは、使用するディスク上のNTFS形式が本質的に同じであっても、スペースを割り当てるためのアルゴリズムを改善しました。

    SSDでは、TRIMのOSサポートになります。これは、OSがブロックを空きスペースとして予約できるドライブファームウェアに示唆する方法であり、ドライブがいっぱいになるとドライブが遅くなる傾向を大幅に減らします。

    全体的に、しかし、これらは非常に小さな効果であり、Windowsの最新バージョンとUbuntuが使用するファイルシステムの間に大きな違いはありません。

  • Crapware、ブート時に実行されるソフトウェアなど

    Windowsには、「スクラップウェア」という非常に大きな問題があります。つまり、インストールしたくないが、他のソフトウェアにバンドルされているソフトウェアが、だまされてまたは単に迷惑です。 Ubuntuでは、通常、すべてまたはほとんどのソフトウェアが具体的にパッケージ化されていますfor Ubuntuであるため、「アドウェア」をバンドルする商業的理由がなく、「スパイウェア」またはその他の悪意のあるソフトウェアを防ぎます。

    Windowsでは、さまざまなソースからソフトウェアを入手しますが、それらの多くは、アドウェアをバンドルする商業的な理由(広告のポップアップ、ブラウザーホームページの変更、ブラウザーツールバーの追加、ブラウザー拡張機能の追加など)、およびいくつかの悪質なソフトウェアスパイウェアのバンドル。

    これはおそらく、時間の経過とともに遅くなるWindowsでの実際の効果よりもはるかに大きくなりますが、インストールするものとソフトウェアを入手する場所に注意することで回避できます。

  • 不十分にコーディングされたソフトウェア、非効率的なソフトウェア

    Ubuntuソフトウェア(Ubuntuリポジトリのソフトウェアを指す)はすべて、UbuntuまたはDebianのいずれかの段階の誰かによって承認される必要があり、含まれる前にソースコードが公開され、一定のレベルの透明性と能力が提供されます重大な欠陥または愚かなコーディングを参照してください。理論的には、これにより、ソフトウェアから一定レベルの信頼性と動作が得られます。

    一方、Microsoft Windows自体とその付属ソフトウェアはかなりうまく機能しますが、サードパーティのWindows用に作成されたソフトウェアは品質と効率が大きく異なり、その生産を承認または監督する団体はありません。

    したがって、Windows用のサードパーティソフトウェアはメモリを非効率的に使用する可能性があり、Windowsの起動時に起動する必要がありますが、起動する必要はないと考えられます。一方、優れたソフトウェアの中には、非常にスリムで高速かつ効率的なものがあります。 Windowsにより多くのソフトウェアをインストールすると、時間の経過とともに蓄積するこのような良いソフトウェアと悪いソフトウェアの混合により、システムは、特に起動時にそれ自体をロードするソフトウェア(これはWindowsヘルプサイトではありませんが、 Windowsを正常に動作させることに興味がある場合は、無料でダウンロードできる優れた「Autoruns」ツールを使用してください。

1
thomasrutter