Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A modern optimization pipeline.


A lot of the fun of the Plan 9 compiler and source organization is that it doesn't optimize; instead, it compiles fast. Like the whole OS in about a minute (on a Raspberry PI). Or maybe it's 2 minutes, I don't recall.

The Go folks have adopted some of the same ideas (minimal optimization and no nested include files), and they build on the experience of the Plan 9 compiler to better divide the work between the "compiler" and "linker", so we gain more from parallel make.


Whole system takes about 55 minutes on a Raspberry Pi. Just the kernel takes a bit over a minute.

The build speed doesn't matter much if you don't like the runtime speed.


Note that the pi is about as fast as a 233 MHz pentium 2.


Aha! That makes so much sense to me. My first PC, which I still have (runs OpenBSD nowadays), is a 350 MHz Pentium II. When I got my Raspberry Pi (a version 1 model B), running a 500 MHz ARM, I was a little taken aback by just how much slower it seemed than my old P2 box. It's got a faster clock and more RAM, how could that be? But it certainly feels slower!

Do you have any sources on this? Can you perhaps link me to something that explains the differences between the ARM and the P2 that lead to such a difference in performance despite the clock speeds?


Runtime speed isn't much of an issue for us. There's nothing in the codebase that large or complicated enough to be slow.


I remember benchmarking plan9 C against gcc waaay back; 1999 or so. Gcc'd programs were a fair bit faster. And I was compiling and running the programs under cygwin under Windows95!

I did this partly because plan9 had published some source code and times on a system with exactly the same hardware as mine - AMD k6/350.

I suspect the plan9 compiler hasn't had nearly as many changes since then so the gap would be much wider.

I acknowledge compile time is important also - and this is where the plan9/golang people have made a reasonable trade-off.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: