ファイルのサイズとは?
ファイル、フォルダー、ドライブなどはプロパティを開くと、サイズが「KB」や「MB」と「バイト」の単位で表示されます。これらの値はそのものの実際の容量のことです。
※プロパティの開き方
対象のファイルやフォルダーを選択した状態で、右クリックして表示されたメニューから「プロパティ」をクリックするか、同じく対象のファイルやフォルダーを選択した状態で、キーボードの「Alt」キー+「Enter」キーを押下しても開けます。
上の例で「サイズ」を見ると、85.8KB(87,931バイト)とあります。1K(キロ)は1,000倍だから、87,931を1,000で割ると 87.9KB(小数点以下第二位で切り捨て)になるのでは?と不思議に思いませんか?
そもそも「バイト」とは何?
「バイト(B)」は情報量の単位の一つで、8ビット(bit)つまり、2進数(0と1のみ)の8桁を使った数値で表します。これにより、2の8乗(=256)種類の情報を表現することができます。
通常の物理的な量を表す場合、数値が大きくなると1,000倍ごとにSI単位系に定められた接頭辞を付加して表現します。
- 1キロ(K)= 1,000
- 1メガ(M)= 1,000K (=1,000,000)
- 1ギガ(G)= 1,000M (=1,000,000,000)
- 1テラ(T)= 1,000G (=1,000,000,000,000)
・・・など
しかし、情報処理の分野では1,024(=2の10乗)倍ごとの接頭辞を用いるので、この2つの表現方法で混乱が生じています。
- 1キロバイト(KB)= 1,024B
- 1メガバイト(MB)= 1,024KB (=1,048,576B)
- 1ギガバイト(GB)= 1,024MB (=1,073,741,824B)
- 1テラバイト(TB)= 1,024GB (=1,099,511,627,776B)
・・・など
この混乱を解消するため、IEC(国際電気標準会議)では1,024倍で表す場合は「KiB」(kibibyte、キビバイト)、「MiB」(mebibyte、メビバイトまたはミービバイト)、「GiB」(gibibyte、ギビバイト)、「TiB」(tebibyte、テビバイトまたはティービバイト)などの接頭辞を用いるよう提唱していますが、あまり定着していないのが現状です。
なぜ情報処理の分野では 1,024倍ごとの単位を用いる?
コンピューターでは電気信号の「オフ」か「オン」の2つの状態を使って処理をしますが、その2つを表現するのに、一般的に使用している10個の数字(0~9)を使う10進法よりも、2個の数字(0,1)のみを使う2進法が適しているからです。
10進法 | 0 | 1 | 2 | 3 | 4 | 5 | ・・・ | 8 | ・・・ | 1000 | ・・・ | 1024 |
2進法 | 0 | 1 | 10 | 11 | 100 | 101 | ・・・ | 1000 | ・・・ | 1111101000 | ・・・ | 10000000000 |
上の表を見ると、10進法の1,024を2進法で表わすと非常にキリが良い数字ですが、1,000を2進法に変換すると微妙な数字になることがわかります。このように、コンピューター上のデータ容量を計算するには2進法の方が扱いやすいため、1KB=1,024Bの単位で表現されています。
ファイルのプロパティで表示されるサイズについても、1バイト=1,024KBで計算された数値になっています。冒頭の例で確認すると、1KB=1,024バイトなので、87,931バイトを1,024で割ると、85.87011・・・となり、小数点以下第二位を切り捨てると 85.8KBになります。プロパティに表示されている値と一致しましたね。
「ディスク上のサイズ」との違いは?
プロパティの「サイズ」はそのものの実際の容量であるのに対して、「ディスク上のサイズ」はというと、保存するために使用するストレージ(記憶媒体)の容量です。ストレージに書き込まれると、実際のサイズよりも大きなサイズのスペースを占めることがあります。そのため、「サイズ」と「ディスク上のサイズ」には違いが出てきます。
先の例では、ファイルのサイズが85.8KBなのに対し、ディスク上のサイズは88.0KBと、少し大きくなっています。本来なら、実際のサイズは85.8KBなので、保存するのに必要なストレージの保存容量は85.8KBのはずです。しかし、このファイルが保存されている物理的なストレージ上では 88.0KBを占めていることになります。
こうした違いが生じるのは、ストレージへデータを保存する仕組みや記憶領域の管理のしかたを知れば、理解できると思います。
ちなみに「ディスク上のサイズ」という表記は、以前HDDやフロッピーディスクなどディスク状(薄い円盤の形状)の記憶媒体を内部に持ったストレージが主流だったことが関係しています。現在では、NAND型フラッシュメモリを使用したSSDなど、内部にディスク状の記憶媒体を含まないストレージ製品も登場していますので、今後この表記は合わなくなっていくのかもしれませんね。
ストレージへのデータ保存の仕組みが関係している
多くのストレージ製品では、記憶領域を管理するのに「セクター」と呼ばれる最小単位を使って管理しています。昔の製品は1セクターは 512B(バイト)でしたが、最近では1セクターが4KB(4Kセクターと呼ぶこともあります)の製品が普及しています。
WindowsなどのOSでは、1つまたは複数のセクターを束ねた記憶領域をクラスター(またはアロケーションユニット)と呼ばれる単位で管理しています。その記憶領域の大きさはクラスターサイズ(またはアロケーションユニットサイズ)と呼ばれており、4KBの他に、8KB、16KB、最近では64KBのものまであります。
このクラスターを記憶領域の最小単位としてOSが使用する都合上、保存するファイルなどのサイズによって使用するクラスターの数が異なってきます。サイズがクラスターのサイズを超えなければ、1つのクラスターの使用で済みますが、超える場合は複数のクラスターを使用することになります。
例えば、クラスターサイズが4KBだった場合、保存するファイルの実際のサイズとの関係は以下のようになります。
実際のファイルサイズ例 | 保存に必要なクラスター数 | ディスク上のサイズ |
---|---|---|
3.5KB | 1 | 4KB |
4.8KB | 2 | 8KB |
8.0KB | 2 | 8KB |
先の例ではクラスターサイズが4KBなので、85.8KB÷4=21.45となり、必要なクラスター数は21では収まらず22になります。その結果、ディスク上必要となるサイズは 22×4=88となり、表示されている 88.0KBとも一致します。
(参考)使っているパソコン(Windows10)のクラスターサイズを確認する方法
1.左下のスタート(ウィンドウズのマーク)を右クリックし、Windows PowerShell(管理者)を選択
2.「fsutil fsinfo ntfsinfo c:」を入力(cはドライブです)して「Enter」キーを押す
3.「クラスターあたりのバイト数」を確認する
4.4,096÷1,024=4、つまり、このパソコンのクラスターサイズは4KBということになります。
多くの場合「サイズ」≦「ディスク上のサイズ」になるが、例外もある
このようにたいていの場合「サイズ」と「ディスク上のサイズ」の大きさは、等しいか、「サイズ」の方が小さくなります。しかし、例外もあります。
例えば、NTFS圧縮機能やデータ重複除去機能を利用している場合は、「サイズ」が「ディスク上のサイズ」よりも大きくなることがあります。
Windows OSがファイルシステムとして使用している仕組みで、ファイルやフォルダーを圧縮する機能(NTFS圧縮)が搭載されています。Windows NT で新たに導入されたためにこのような名称になっています。
NTFSではファイルシステムに存在するすべてのファイルの情報を管理するMFT(Master File Table)と呼ばれる領域を持っています。通常のファイルはMFTにファイルに関する情報が書かれており、その実際のデータはMFTとは異なるデータ領域のクラスターに保存されています。
データの重複している部分(冗長部分)を排除することで、保存に必要なストレージの記憶領域の量を減らす機能です。Windows Server 2012以降のWindows Server OSでは、この機能が使用できます。
ディスク上のサイズが「0(ゼロ)」のことも!
さらに、最近のバージョンのWindows OSでは、ストレージに保存したファイルの「ディスク上のサイズ」が0バイトとなることがあります。この現象は、Windows Server OSのデータ重複除去機能を有効化しているボリューム上のファイルやフォルダーで発生します。またWindows 10などを使っている場合でも、小さいサイズのファイルをストレージに保存した際などに見られます。
また、NTFSでは、小さいサイズのファイルの場合、ファイルに関する情報だけでなく実際のデータもMFT側に書き込まれることで、データ領域のクラスターを使用しないことがあり、こうした場合にも「ディスク上のサイズ」が0バイトになります。
通常、サイズと言えばどっち?
もし「ファイルのサイズはどれくらいか?」と聞かれたら、それはストレージに保存するために使用しているサイズを聞いているというより、ファイルやフォルダーそのもののサイズを聞いていることが多いでしょう。
例えば、ファイルサイズがメールに添付するには大きすぎないか?などを判断するのは、ファイルの実際の「サイズ」でOKです。
ファイルのサイズを知って快適に!
ファイルをダウンロードする際、ダウンロードにかかる時間はファイルの容量によって大きく左右されます。膨大なデータを転送したり共有などをする場合は、複数のファイルを1つにまとめたり、圧縮をしてファイルのサイズ自体を小さくすることで、ダウンロードなどにかかる時間を短くできるなど、スムーズに行うことができます。また、ソフトウェアやファイルをダウンロードする際は「ZIP」形式などの圧縮ファイルにすることが多いですよね。
また、画像や動画などのデータも、画素数が多くなってファイルのサイズが非常に大きくなってしまう場合があります。サイズを気にせずにファイルに画像や動画を貼り付けてしまうと閲覧するだけでも長い時間かかってしまうこともあるので、注意したいですね。
ちなみに、今回紹介したクラスターサイズ自体を変更して保存の効率化を図る方法もありますが、ドライブのフォーマット作業などがいるので注意が必要です。
このようにファイルのサイズをできるかぎり抑えたり、ファイルをまとめるなど効率化することで、資源や時間を大幅に削減でき、快適かつスムーズなパフォーマンスを得ることができます。