■ Registr!p
レジストリの内部的な利用状況、デッド・ギャップの有無や比率、既に存在するアクセス不能キー(幽霊キー)や手動のレジストリ再構成の際に幽霊化するキーのリストアップを主な機能とする、レジストリ分析ツールである。グラフ表示で「見易く・分かり易く」表示すると同時に、結果をテキストファイルに保存できる。
ダウンロードは「プログラム」のコーナーから。
なお、レジストリの修復や再構成の機能はない。Windows95 や Windows98 のレジストリが、再構成しなければならない仕組みを有していることを実感するために使ってほしい。
このプログラムは、レジストリアクセスインターフェースを全く介さずにレジストリを覗いている。ファイルを読むだけなので使用中のレジストリでも破壊することはないが、バイナリ構造をもとに分析しているため、WindowsNT や Windows 3.1 のレジストリでは正しく機能しないと思われる。
お約束だが、使われる方は自己責任の範囲において使って下さい。
さて、アーカイブをダウンロードしたら適当なフォルダに解凍し、エクスプローラからダブルクリックして実行する。
「ファイルを開く」ボタンを押し、ファイル選択ダイアログからレジストリファイルを選択する。
\windowsフォルダにあるsystem.da?/user.da?、profiles\usernameフォルダにあるuser.datあるいはルートディレクトリにあるsystem.1stを選択する。レジストリへの書込は一切行わないので、心配は無用だ。
※ver0.0.4.3以降では、user.dat および system.dat を一発で開くためのボタンを用意した。伴って画面のボタンレイアウトが変わったので、下記画面とはやや異なる部分もあるが、ご承知置き頂きたい。
「開く」を押すとすぐに分析が始まる。分析中はステータスバーとタスクバーアイコンに経過を示す文字が表示される。分析が終わるとステータスバーに「Complete」と表示される。なお、コンピュータの環境によってはステータスバーへの状況表示がうまく働かないこともある。
分析結果のグラフは、「Analize」タグにあるコンボボックスから選んで表示させる。
以下、当方のマシンのレジストリの分析結果を例に、各画面の説明をしよう。ただし、これが良い例あるいは悪い例という意味ではなく、またどのコンピュータでも必ずこのような結果になるとは限らないことは、ご承知のうえ読んでいただきたい。
最も簡単に図を「読む」方法。赤色は「無いに越したことはない」、緑色は「少ない方がよい」、青色は「気にしなくてもよい」部分を表していると思っていただきたい。
◆利用状況(全体)
「Using」とは現在レジストリキーとして有効に存在し使われている領域であり、続く数字はその領域のサイズの総和を表している(単位はbyte)。「Empty」は今後レジストリキーの変更や追加のために使われる領域である。「D-Gap」はデッドギャップ、つまりレジストリに存在する『確実に無駄な』領域である。
マニアックスで説明した「デッドギャップ」の存在を、訝しく思っておられる方も少なくないだろう。おそらく今まで何一つ公に語られたことがない話だからだ。しかし、このツールによってそれが目で見て分かるのである。
デッドギャップのサイズの求め方は、極めて簡単である。レジストリの全体のサイズから「Using」および「Empty」のサイズの総和を減じればよいのである。「Using」、「Empty」とも、それぞれ管理領域から1つのチェーンでつながっているので、それらの大きさを把握することは容易である。
レジストリを再構成することで、「D-Gap」の殆どが駆逐され、「Empty」もかなり小さくすることができる。両者が完全に除かれるのではない。新しいレジストリキーを追加するためには未使用領域が必要であるし、レジストリキーの更新により必ずデッドギャップは発生するからだ。当然ながら「Using」のサイズ以下にはできない。
全体の利用状況の基になったデータが、次の「ブロック毎」情報である。
◆利用状況(ブロック毎)
◆利用状況(ブロック毎値非表示)
表示されている数字は、ブロック毎の「Using」「Empty」「D-Gap」各領域のサイズ(単位はbyte)である。棒グラフはブロック内部での領域割合を百分率で表している。
ブロックについて簡単な説明すると、図の「KN」とはキーの樹構造が格納されている領域(カーネルブロック)、隣に続く数字の所はレジストリキーおよび含まれるレジストリデータの中身が格納されている領域(データブロック)である。樹構造情報から実データへのアクセスを効率化するために、1つのデータ領域に入れるキーの数を制限し、複数のブロックに分けているようだ。
system.datなど、巨大なレジストリになるほど多くのデータブロックがあり、サイズ表示を伴うと見難い場合もある。そんなときは「データ毎値非表示」を選ぶ。
◆キー名チェックサム合否
KK法など、手動でレジストリを再構成する際に、日本語キーが正常に取り込めないことは別ページで触れたが、ここではそれがチェックできる。
図中の「Good」とはレジストリ手動再構成に際しても何ら問題のないレジストリキーの総数である。「Bad」は単純にレジストリ手動再構成を行うと、完了後にはWindowsから見えているのに正常にアクセスできなくなる、つまり「幽霊キー」となるキーの総数である。計算によって幽霊キーの特徴を持っているかは判別可能で、未然に知ることができるのだ。幽霊キーと化す因子のあるレジストリキーはレポートに書き出される。図では隠れて見えないが、「Ghost」とは現在既に幽霊キーとなっているキーの総数である。通常のPC環境で「Ghost」が存在することは希だろう。
ちなみに、「Using」領域の内訳は「Good」+「Bad」(+管理情報)で、「Ghost」は「D-Gap」領域に含まれる。
◆レコードサイズ分布
「Good」なレジストリキーの情報を格納しているデータレコードのサイズを分布図で表している(単位はbyte)。図上の点をクリックするとレジストリキー名が下に表示される。分析したものが user.dat なら HKEY_CURRENT_USER または HKEY_USERS が、system.dat なら HKEY_LOCAL_MACHINE 以下のレジストリキーである。レジストリの再構成に直接関わる分析結果ではないが、サイズの大きなキーとはどんなものか、あるいは逆にどんなアプリが巨大なレジストリキーを使っているかを知り、レジストリを肥大化させないための情報の一部としてもらいたい。
◆空きレコードサイズ分布
同様に未使用レコードのサイズを分布図にしたものだ(単位はbyte)。黄色の直線は未使用レコードサイズの平均値、青色はUsingレコードサイズの平均値である。Usingレコードサイズの平均値を下回る大きさの未使用レコードは使われる可能性が低いと思われる。ただ、この図があまり見易くない上に、未使用レコードは1ブロックに数個程度しかないので、大して意味のない図かもしれない。
分析後 Report タブを押すと、結果がテキストになって収められている。「レポートを保存」ボタンで、テキストファイルとして保存できる。
「1.Using Rate」は、全体と個別の利用状況を数値で表したものだ。
ところで「Using」の項を縦に足しても、全体の合計値に一致しない。これは「Using」の意味づけが個別と全体とで異なるためだ。個別表示の行ではブロック内の「使われているレコード」のサイズの合計値であるのに対し、全体表示(whole)では「使われている部分全て(レコード+ブロック毎の管理領域)」の合計値になっている。ブロック毎の個別評価の際には、管理領域はどれにも必ず存在するため、計算に含めなかったのである。
「2.Key Check-sum Check」では、「Bad」または「Ghost」な判定のレジストリキーを列挙している。注意していただきたいのは「Bad」なキーは、手動でレジストリ再構成をしない限り何ら問題は起こさないことだ。市販のレジストリ再構成ツールでは、この「Bad」キーが本当に「悪さ」を働かない(幽霊キー化しない)ように工夫を凝らしているため、やっぱり問題ない(と思う)。
「3.Using Record Size」「4.Using Record Size」では、レコードサイズの最大・最小・平均を表している。
上の図では、最小の未使用レコードは 45 バイトしかなく、使用中レコードの平均値 226 バイトであることから考えても、今後も未使用のままであり続ける可能性が高い。
Optionタグでは分析する際の動作を設定できる。
「Analize」でレジストリを分析するかしないか、「Result→Report」で結果をレポートとして残すか否か、「Minimize Under Analizing」で分析中に窓を最小化するかしないか(分析が終わると自動的に元のサイズに戻る)を、規定する。言うまでもないと思うがチェックボックスがオンの状態が、その動作を「行う」という意味である。