I dont understand the reported size of the go runtime. Sure, an hello world can be 2 megs in Go, but not 500. Compiled binaries are standalone and famously statically linked, so there is no extra RUNtime. I'd think the reported 470MB is the compiler and stdlib install size ?
I also don't understand the quoted size of "LLVM/clang compiler+runtime". If I tally up the size of clang and it's dependencies with my package manager, I might get 500M, not 5G.
He probably ran ls on /usr/local/go (it's 477MB on my machine). But that's the size of the entire Go download after unarchiving, which includes the runtime's and all the standard library's 1) source code and 2) precompiled object files, both in normal and race-mode.
So no, that's not the actual size of "the Go runtime" for any meaningful definition of "the Go runtime".
Great list! At the speed of light (300000 km/s) you can go around the earth (40000km) 7.5 times per second. The tcp packet speed is almost as fast as it can possibly be and this is amazing (or not, given that it is light most of the way).
10 comments
[ 4.6 ms ] story [ 34.8 ms ] threadI really appreciate HN keeping things simple. Wish more websites did same.
So no, that's not the actual size of "the Go runtime" for any meaningful definition of "the Go runtime".
If I were making a similar list, I would use it to compare modern sizes versus what sizes could be (e.g. on older computers or embedded systems).
Various 8-bit controllers give you 256 Bytes to 128kB Flash / program space.
Various 32-bit uCs, including ARM Cortex M0+, ARM Cortex M33, ARM Cortex M4, ARM Cortex M7 give you spaces from the 2kB to 1MB sizes.
There are entire worlds and chip environments between the smallest 64 bytes programs and the 256kB programs around.