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の場合は、
du
2048が表示されます。ファイルがブロックに「フィット」できないため、代わりにls
1500が表示されます。
size
実行可能ファイルのランタイムイメージのサイズを表示します。たとえば、実行可能ファイルは約1.8 MBのRAM / ROMを使用します。これはファイルサイズと直接関係ありません。
実行可能ファイルが占めるRAM/ROMの量(動的メモリ割り当てを除く)を知りたい場合は、サイズで必要な情報を取得できます。