.NET Scripting Language Performance Blows Away Java

“The early results with IronPython show that Python compiled to IL can run fast. On the standard pystone benchmark, IronPython-0.1 is 70% faster than CPython-2.3. The numbers for pystone as well as several micro-benchmarks are shown below. For ease of comparison, all times are normalized to Python-2.3. Smaller numbers indicate faster performance...

...There are a few points to note about the comparison with Jython's performance. First, IronPython-0.1 is still a rough prototype while Jython-2.1 is a full implementation of the Python platform used in many commercial projects. Recently, correctness and completeness have been the primary drivers of Jython's development. On the other hand, Jython is one of the highest performing scripting languages for Java...and thus the performance comparison bodes very well for other scripting languages on the CLR.” [1]

Interestingly, Jim also created Jython, which is 2x to 3x slower than IronPython in most of the benchmarks (though the .NET version posts a whopping 6x speed improvement for function calls).

[1] Jim Hugunin: http://primates.ximian.com/~miguel/ironpython

2 Comments

  • Hu hom,



    In my opinion the title is wrong. .NET blows away Java should probably be titled: "IronPython on CLR is faster than Jython on a JVM".



    Why is that a difference? Because Jython offers much more than Python alone. E.G. Python has no method overloading. Calling a method has no need to distingusih wich overloaded method to call, so there is no special method look up involved. Neither by calling ordinary methods nor by calling ctors.



    So, how does IronPython handle that issue? Can IronPythen classes be derived from C# or C++ or VB or Java classes?



    Jython classes can be derived from Java classes, with the burdon of having multiple ctors, the burdon of having mulitple methods with same name and varying in number of arguments or type of arguments. Likely with the need of marchalling and unmarchalling of Python objects passed as arguments to such calls.



    Of course a Python dialect NOT offering all that possibilities has an easyer architecture and yields FASTER execution.



    No offence, IronPython is surely an interesting project. And surely the work is important to yield knowledge about what can be done and what cant in modern VM design. Also the fundamental differences in VMs and Byte Codes and optimizations are interesting.



    But comparing Jython with IronPython is like comparing C++ with C#. There are similarities .... but they are not the same.



    Regards,

    angel'o'sphere

  • >But comparing Jython with IronPython is like comparing >C++ with C#. There are similarities .... but they are not the same.



    Well, I think you are wrong here for both Java and .Net are pretty much in the same busseniss. They both use the principle of GC & Jit. Comparing Jython and Ironpython is more something like comparing C and C++, or comparing C# and Vb.net.



    I'm very pleased with the results and I hope they will just go up :)

Comments have been disabled for this content.