a)断片化を取り除くために、典型的な最適化プログラムはどのアルゴリズムを使用しますか?
b) Defraggler には、クイックデフラグオプションとデフラグオプションがあります。デフラグが通常のデフラグを実行すると仮定すると、クイックデフラグは何を実行しますか?
私はデフラグに深くは関わっていませんが、あなたの質問に関するいくつかの情報を共有したいと思います。質問の最初の部分で、MSDNはブログでデフラグアルゴリズムについて言及しています。
Windows XPでは、複数の部分に分割されたファイルはすべて断片化されていると見なされます。フラグメントが十分に大きい場合、Windows Vistaではそうではありません。デフラグアルゴリズムが(Windows XPから)変更され、64MBを超えるファイルの断片が無視されるようになりました。その結果、XPのデフラグとVistaのデフラグはボリューム上のさまざまな量の断片化を報告します。どちらが正しいですか?質問に答える前に、なぜデフラグするのかを理解する必要があります。 Vistaでは、デフラグの影響を分析し、デフラグによるパフォーマンスの最大の向上は、ファイルの断片が十分に大きなチャンクに結合され、ディスクシークの待ち時間の影響がファイルの順次読み取りに関連する遅延。これは、断片化されたファイルを結合しても、認識できるメリットがなくなるポイントがあることを意味します。
ここから記事全体を読むことができます: Windows 7のエンジニアリング-ディスクの最適化。
質問の2番目の部分については、 Piriform Docs に答えがあります:
デフラグラーには、通常のデフラグとクイックデフラグの2つの異なるデフラグモードがあります。クイックデフラグは高速ですが、結果は通常のデフラグほど最適ではありません。
クイックデフラグは、特定のプロパティを持つファイルをスキップすることでより高速に動作します。これらは、[オプション]ダイアログボックスの[クイックデフラグ]タブで指定されます。
デフォルトのクイックデフラグルールでは、フラグメントが50MBを超えるファイルはスキップされます。
デフラグメンテーションをよりよく理解するために、ウィキペディアには良い ページ があります。
注意すべき重要な点の1つ:Microsoftは、プログラムがファイルを安全に最適化するために使用できるAPIを提供しています。 ( MSDNのファイルのデフラグ を参照)デフラグはこれらのAPIを使用する必要があり、ほとんどの場合使用します。
デフラグのすべての「魔法」は、ファイルのレイアウト方法を決定することにあります。これは、さまざまなプログラムが互いに区別するために使用するものです。あなたが本当に賢いと思うなら、あなたは MyDefrag を使ってあなた自身のレイアウトスクリプトを書くことができます。
答えは絶対にありません。 「典型的な」アルゴリズムはありません。各デフラグアプリは独自のアルゴリズムを使用しているためです。確かに、いくつかのより知られているアルゴリズムの中に見られる「傾向」があるかもしれませんが、一般的に言えば、典型的または普遍的なものはありません。
MyDefrag 、すばらしいアプリですが、ある程度、独自のデフラグアルゴリズムを作成できます。