[Mono-list] mono performance on highly recursive functions

Marcus mathpup@mylinuxisp.com
Sun, 16 Feb 2003 15:28:54 -0600

Yesterday Jeroen Frijters posted an array creation test, where mono did 
particularly badly. I am wondering if mono's uncharacteristically poor 
performance on that test is caused by a more general problem with highly 
recursive functions.

One well-known test that features a great deal of recursion is Ackermann test. 
I've noticed for a while that mono runs the Ackermann test very slowly in 
comparison to other VMs. On most tests, mono does very well, frequently 
faster than Blackdown's JVM but slower than IBM's. In this case, mono takes 
25 times as long as IBM's JVM and 6 times as long as Blackdown's. Perhaps 
this is an area that merits some investigation.

I'm giving the test results for a variety of platforms. Obviously different 
machines will give different results, but the relative comparison is the 
interesting point here.

IBM JVM		1.4
Blackdown	5.0
mono		29.7
ilrun			26.7
g++			1.7

Where the versions tested were

IBM JVM: Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20020622 (JIT 
enabled: jitc))

Blackdown: Java(TM) 2 Runtime Environment, Standard Edition (build 
Java HotSpot(TM) Client VM (build Blackdown-1.3.1-FCS, mixed mode)

g++: GCC 3.2 (-O3 -fomit-frame-pointer -mpreferred-stack-boundary=2