[Python-Dev] IronPython Performance (original) (raw)
Brent Fulgham bfulg at pacbell.net
Sat Apr 22 01:01:54 CEST 2006
- Previous message: [Python-Dev] Reject or update PEP 243?
- Next message: [Python-Dev] [Mono-dev] IronPython Performance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
A while ago (nearly two years) an interesting paper was published by Jim Hugunin (http://www.python.org/pycon/dc2004/papers/9/) crowing about the significant speed advantage observed in this interpreter running on top of Microsoft's .NET VM stack. I remember being surprised by these results, as Python has always seemed fairly fast for an interpreted language.
I've been working on the Programming Language Shootout for a few years now, and after growing tired of the repeated requests to include scores for IronPython I finally added the implementation this week.
Comparison of IronPython (1.0 Beta 5) to Python 2.4.3 [1] and IronPython (1.0 Beta 1) to Python 2.4.2 [2] do not match the results reported in the 2004 paper. In fact, IronPython is consistenly 3 to 4 times slower (in some cases worse than that), and seemed to suffer from recursion/stack limitations.
Since the shootout runs on a Debian Linux box, I was not able to use Microsoft's CLR; instead, I was pleased to find that Mono successfully ran most of the Shootout testing suite. The 1.0 Beta 1 version of IronPython was built using the compiler chain that ships with Mono 1.1.13.6; the 1.0 Beta 5 version is an 'official' build from the IronPython download site running on Mono 1.1.13.4.
I am aware of the following issues that might affect the results:
- Mono vs. Microsoft's CLR.
- Python 2.1 vs. Python 2.4
- Changes in IronPython over the last two years.
In addition, there is a small startup cost paid by IronPython since the py_compile libraries were not present in the IronPython beta, preventing me from precompiling the *.py files to *.pyo. However, most of our benchmarks are now sufficiently long that initial startup costs are less significant.
I thought these findings might be interesting to some of the Python, IronPython, and Mono developers. Let the flames begin! ;-)
-Brent
=============================================================== Current results for Python versus IronPython are posted here: [1] http://shootout.alioth.debian.org/sandbox/benchmark.php?test=all〈=iron&lang2=python [2] http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all〈=iron&lang2=python
- Previous message: [Python-Dev] Reject or update PEP 243?
- Next message: [Python-Dev] [Mono-dev] IronPython Performance
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]