Re: Size of "Hello world"
* MiB:
On Apr 21, 10:03 am, "Alf P. Steinbach" <al...@start.no> wrote:
The typical size of a machine code executable "Hello world", generated by a high
level language compiler, has increased steadily over the years.
Where did you get this?
Experience and general knowledge.
E.g. the size shown below wouldn't even fit in a ZX80, much less the KIM-1.
Although the ZX80 possibly didn't have a C++ compiler.
Using Visual C++ 2010, creating native x86 code in default release
settings (i.e. no fancy optimization tricks), a C++ program printing
"hello world" to a console window is 8k.
No doubt it can be reduced to that. In fact I have no trouble reducing it to 4
KiB in Windows (and less if I ain't afraid of letting the loader fix up things,
but there's a 4 KiB pagesize), and in *nix it can be just a few hundred bytes
IIRC. Which doesn't say anything, really -- I was talking about typical size.
<example>
C:\test> cedit x.cpp
C:\test> msvc --version
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption... ]
C:\test> msvc x.cpp
x.cpp
C:\test> dir | find "x.exe"
21.04.2010 16:43 73 728 x.exe
C:\test> gnuc --version
g++ (GCC) 3.4.5 (mingw-vista special r3)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
C:\test> gnuc x.cpp -o x
C:\test> dir | find "x.exe"
21.04.2010 16:44 488 517 x.exe
C:\test> gnuc x.cpp -s -o x
C:\test> dir | find "x.exe"
21.04.2010 16:44 276 480 x.exe
C:\test> type x.cpp
#include <iostream>
int main(){ std::cout << "Hello, world!" << std::endl; }
C:\test> "c:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
C:\test> msvc --version
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
usage: cl [ option... ] filename... [ /link linkoption... ]
C:\test> msvc x.cpp
x.cpp
C:\test> dir | find "x.exe"
21.04.2010 16:46 98 816 x.exe
C:\test> _
</example>
I expect similar results of any concurrent C++ compiler.
Oh?
C above. ;-)
Cheers,
- Alf