So I have written a very simple program in 8 different programming languages:
C, C++, Rust, Java, Javascript, Python, C#, F#
All it does is to simply sort input text line by line and writes to an output file. Then I recorded the # instructions and time it takes to run for different sizes of input. Here is the result (legend intentionally cut out):


Just from the graphs, we can get some insights
- in general, # instructions and runtime show very good alignment, i.e, the fewer the # instructions, the faster it runs
- some languages are quite stable with respect to input size, while some languages fluctuate a lot. This can be of a concern if stability/predictability is requirement
- Some language (e.g., brown) has a huge startup cost. Extrapolating the first graph, it seems around 2.5B instructions just to start the program!
- The slowest and the fastest differs by 10x in # instructions and 6x in runtime
Can you guess which program corresponds to which color? Answer
Some interesting findings
C#andF#exhibit quite different behavior. This is surprising given that both use .NET framework. I expected the two to be almost identicalPythonis fast, probably b/c most of the heavy-duty work is done by the library, which is implemented inC- Why is
C++slower thanC? Isn’tC++supposed to be as fast asC? - Why does
Rustrun so fast? - no wonder why web-browsing feels so sluggish!