はじめに
Web屋さんをしていると、画像やPDFのサイズをHTML上に記載したりするときなど、何かとデータサイズを気にする場面が多いです。
例えば、ファイルサイズはMacのFinderだとこんな感じで表示されます。
Windowsのエクスプローラだと以下のように表示されます。1
上記のファイルの場合、サイズは630,055バイトでディスク上のサイズは630,784バイトのようです。
「なんでサイズが違うの」という方
「結局ファイルサイズ記載する際はどっち書けばいいの」と思った方
には、この記事は有用かと思います。
※ちなみに、そこまで小難しい詳細は記載せずかなり噛み砕いておりますので、もっと深い内容に興味がある方は基本情報技術者などの勉強をオススメします。
結論
- サイズとディスク上のサイズは異なるものを指す
- ファイルサイズを記載したいときは、ディスク上のサイズではなく単なる「サイズ」を書く
解説
保存媒体へのデータの格納
HDDやSSD、USBフラッシュドライブなどにデータを保存する際、データはその媒体内で区切られたロッカーのような入れ物に放り込まれます。
このロッカー1つ1つのこと、つまりファイルやディレクトリに割り当てられる最小の容量論理単位を、クラスタまたはアロケーションユニットと呼びます。
クラスタサイズは環境(フォーマット時に選択したクラスタサイズなど)によって異なりますが、例えば4KBだったとすると、データサイズは1Byteだったとしても、クラスタに格納されるとディスク上は4KBの領域を確保していることになります。
すると結果として、我々がそのデータをFinderなどで確認すると、実際のデータサイズは1Byteでも、ディスク上のサイズはそれを格納したクラスタサイズである4KB、と表示されるわけです。
もし、この格納するデータが4KB以上だった場合は、複数のクラスタに分けて格納されます。
Webサイトなどでデータのサイズを明記するとき
さて、前述した通り、HTMLページ上にPDFを添付する際、そこに「◯◯.pdf (500KB)」みたいな感じでデータサイズを併記することは間々あると思います。
ファイルシステムやフォーマットの設定などによって、クラスタサイズは環境によって異なるため、Finderなどを確認しそれを転記する場合は、サイズの方をチェックすると適当かと思います。
つまり、先程のデータ↓をFinderで確認した場合は、
630055 \div 1024 \fallingdotseq 615.2880859375\ldots
となり、615KBと記載します。
(正確に2進接頭辞を使えとかそういう話は別の場所でしてもろて)
まとめ
「ディスク上のサイズ」は実際のデータサイズとは異なるということを説明しました。
計算機科学のようなものを学んだことがないと実は躓きそうなポイントなのではないかと思い、今回は実務上知っておけばいいかなくらいの情報にとどめてまとめました。
保存する媒体によって理解するための知識がもっと必要だったり、まだまだ序章も序章の話なので、興味がある方はぜひ調べてみてください。
-
画像はVM上の表記であるため、本来のWindowsのファイルシステムだとMacと同じ数値ではないかもしれません ↩