[Mono-list] Performance comparisons

Gopal V gopalv82@symonds.net
Thu, 16 Jan 2003 13:40:47 +0530

> patope:~/Projects/mono/omat% ilrun perf_pnet.exe
> Time taken: 00:00:44.827609
>    Is Pnet's ilrun interpreter?

Yes, ilrun is an interpreter ... Comparing a JIT with an interpreter 
over a tight loop is a massacre :).. 

There are 5 flavours of ilrun for different platforms, could you mention
which of these you're using (coz I'm getting 19 secs on my PIII 450) ...
You can have Switch loop, Computed Goto , Register , Token threaded, 
Direct threaded or Unrolled ilruns .. (Hmm... PIC computed goto too), of 
which I'm using the last mentioned.. Configure picks the one that's most
suited for the platform automagically.

So ilrun on Mac OS X might have a totally unrelated speed compared to ilrun
on an IA64 ...

>                 blt.s      ?L2066

The CSCC compiler makes use of a few assembler optimisations like this 
jump squashing ... and therefore generates the "small" jumps instead of
full jumps which gives very significant reductions in file size ....

Comparing interpreters of the projects might have shocking results ...
So, I will not comment on that ... Rhys's papers on the Pnet engine shall
cover the portability vs speed issues ... 

So in general speed wars are stupid, because we end up optimising for
benchmarks and endup slowing down real code ... Perf.cs would maybe need
a couple of if's to remove the loop, but that's just stupid :)

The difference between insanity and genius is measured by success