IT・プログラミング雑学

簡単でわかりやすい!ファイルの実際のサイズとディスク上のサイズの違いとは?ファイル管理の仕組みからプログラマーが詳しく解説

少しでも無駄を減らすために!アロケーションユニットとの付き合い方

image by iStockphoto

さてどうしても無駄が出るのは仕方ないとして、無駄は減らしたいですよね。そのためにはどうすればよいでしょう。その方法を説明します。

その1:小さいファイルがたくさんある場合は圧縮してまとめよう

通常アロケーションユニットサイズは4Kから16Kバイト程度のことが多いです。例え1バイトのファイルでもそれだけのサイズを使ったことになってしまいます。それを避けるにはどうしたらよいのでしょうか。ホテルだったら相部屋にしてもらうという方法もあります。それと同じような考えがファイルの圧縮です。

Windowsのエクスプローラーで圧縮フォルダーを使う方法や専用のツールでいくつかのファイルをまとめて圧縮することができます。この場合まとめたファイルがどれだけあっても、ディスクから見れば1つのファイル。つまり相部屋してもらっている状態です。1バイトのファイルが10個あると40Kバイト使ったことになってしまうわけですが、圧縮すれば4Kバイトで済みます。これは効率的ですよね。

その2:どうしてもなんとかしたい場合はバックアップして再フォーマット

先ほど説明したように、ディスクのアロケーションユニットサイズは変更も可能です。ただし、それにはフォーマットが必要すでにあるファイルはフォーマットしてしまうと消えてしまいます。そのため、まずはどこか別の場所にバックアップする必要が。その後、フォーマットして、ファイルを戻すという手間が必要です。面倒ですよね。

また、ディスクによってはアロケーションユニットサイズが変更できないケースもあるので、どうしても変更したい場合だけこの方法を使ってください。

その3:ディスクに空きがあるならば気にしない

さて、それ以外にはどういう方法があるでしょうか。実はディスクに空きがある状態ならば気にしないのが一番です。と言うのも、アロケーションユニットサイズは必ずしも小さいことがよいとは限らないため。無駄なスペースを減らすと言う意味では効率的ですが、デメリットもあります

それはファイルの読み書きが遅くなること。アロケーションユニットサイズが小さいと言うことは、それだけそのファイルを細かく分けているということ。例えば、100Kバイトのファイルがあるとします。アロケーションユニットサイズが16Kバイトであれば7分割です。一方、4Kバイトであれば25分割。16Kバイトを7回読み書きするよりも、4Kバイトを25回読み書きする方が、サイズは同じでも回数が多い分遅くなってしまいます。そのため、大きなファイルを扱う際にはアロケーションユニットサイズが大きい方がよいのです。

no-img2″>
 <figcaption class=桜木建二

無駄なスペースがあると言うと気になるかもしれないが、バランスというものも重要だ。いくら無駄を減らせてもそれでファイルの読み書きが遅くなったら意味がないよな。余程の理由がない限りはアロケーションユニットサイズの数字を気にする必要はない。だが、仕組みの上で無駄があるということは覚えておけ。スペースが空いているように見えても、部屋がいっぱいということがあるわけだ。

実際のサイズとディスク上のサイズは両方重要、違いすぎる場合は工夫も必要

ファイルのプロパティにある「サイズ」と「ディスク上のサイズ」はホテルに例えると宿泊人数と部屋数×部屋の最大人数の違いです。ディスクは中をアロケーションユニットサイズという大きさで分けた部屋に区切っています。そのため1バイトのファイルでもアロケーションユニットサイズ分は使ったことになってしまうわけです。部屋が埋まってしまえば部屋の中に空きスペースがあっても使うことはできません

ただ、アロケーションユニットサイズが大きいことは悪いことばかりではありません。その方が大きなファイルの読み書きが早くなります。無駄なスペースがあるというと気になるかもしれませんが、必要な余裕と思ってください。ただ、空きがあるように見えても無駄スペースがあるので実際には満杯ということがあるということを覚えておいてください。

1 2 3
Share: