Obviously all three might add to that. However I think that number 1 COULD already be enough for the noticed slowdown of 3 times. It depends a lot on which Classes/ Methods IronPython is using (And I guess it is now optimized towards the MS CLR). If you just have pure integer or floating point math in simple loops the difference between the CLR and Mono istn't very big (some percent usually), but as soon as you use other classes (even from the very core of the BCL) you will often see huge differences. It seems that the current goal of mono is to get everything running (In a way as simple as possible) instead of trying to optimize performance (e.g. I posted a patch some time ago to improve performance of common string operations of up to 100% which was turned down because it would have added about 100 LOC). Or another example: if your benchmark writes numbers to files or the console the culpit might be NumberFormatter, which itself is usually more than 5 times slower than on the CLR. But there are several others which could be the cause of that. By the way: Which optimizations did you enable when running IronPython on Mono? These also could potentially make a big speed difference.
Also I guess number 2 could also make some difference in speed. I am aware of the following issues that might affect the results: 1) Mono vs. Microsoft's CLR. 2) Python 2.1 vs. Python 2.4 3) Changes in IronPython over the last two years. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com