Linux `size`コマンドは`ls`とは異なる結果を与えます。

Linux `size`コマンドは`ls`とは異なる結果を与えます。

Ubuntu 16.04でビルドされた実行可能ファイルがあります。 GUIおよびls -lコマンドで表示されるファイルサイズは次のとおりです。

-rwxrwxr-x 1 alibivmuser alibivmuser 19108760 dic 20 15:49 NreSpeechApplication

これは、ファイルの実際のサイズが19MBであることを意味します。私のファイルシステムでは、サイズはかなり似ています(ls -sを使用)。

18664 NreSpeechApplication

Linuxでは、このコマンドのサイズ出力はsize同様の結果を提供すると予想していましたが、合計サイズは約1.8MBと表示されます。

text    data     bss     dec     hex filename
1806360    2416    4552 1813328  1bab50 NreSpeechApplication

だから私の質問は:2つの結果がなぜそんなに違うのですか? 1.8MBから18MBまでこの追加MBはどこから出るのでしょうか?

ベストアンサー1

ls実際のファイルサイズ、つまりファイルを開いて読み取ったときのバイト数を表示します。

ファイルがディスク上でどのくらいのスペースを占めるかを知りたい場合は、ファイルシステムのブロックを検討する必要がdu -hあります。du

例:ファイルサイズが1500でブロックサイズが1024の場合は、du2048が表示されます。ファイルがブロックに「フィット」できないため、代わりにls1500が表示されます。

size実行可能ファイルのランタイムイメージのサイズを表示します。たとえば、実行可能ファイルは約1.8 MBのRAM / ROMを使用します。これはファイルサイズと直接関係ありません。

実行可能ファイルが占めるRAM/ROMの量(動的メモリ割り当てを除く)を知りたい場合は、サイズで必要な情報を取得できます。

おすすめ記事