Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
pybench results for CPython and IronPython
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  14 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Sanghyeon Seo  
View profile  
 More options Apr 20 2007, 10:02 am
From: "Sanghyeon Seo" <sanx...@gmail.com>
Date: Fri, 20 Apr 2007 23:02:49 +0900
Local: Fri, Apr 20 2007 10:02 am
Subject: [IronPython] pybench results for CPython and IronPython
With IronPython 1.1 released, I ran pybench for CPython and IronPython
on my machine, and published the result here:

http://sparcs.kaist.ac.kr/~tinuviel/pybench/

py24, py25, ipy11 are raw pybench result files. ipy11-vs-py24 and
ipy11-vs-py25 are comparing reports generated by pybench.

--
Seo Sanghyeon
_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arman Bostani  
View profile  
 More options Apr 21 2007, 2:51 am
From: Arman Bostani <ar...@twinsun.com>
Date: Fri, 20 Apr 2007 23:51:56 -0700
Local: Sat, Apr 21 2007 2:51 am
Subject: [IronPython] pybench results for CPython and IronPython
Thanks to Sanghyeon for running the benchmarks.  To summarize his
results, it seems like IP is pretty good at: comparing simple types,
loops, function calls and float arithmetic.  It performs pretty poorly
at almost everything else!  I guess its time to convert critical code
sections to Boo.

-arman

> Date: Fri, 20 Apr 2007 23:02:49 +0900
> From: "Sanghyeon Seo" <sanx...@gmail.com>
> Subject: [IronPython] pybench results for CPython and IronPython

> With IronPython 1.1 released, I ran pybench for CPython and IronPython
> on my machine, and published the result here:

> http://sparcs.kaist.ac.kr/~tinuviel/pybench/

> py24, py25, ipy11 are raw pybench result files. ipy11-vs-py24 and
> ipy11-vs-py25 are comparing reports generated by pybench.

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
M. David Peterson  
View profile  
 More options Apr 21 2007, 9:04 am
From: "M. David Peterson" <xmlhac...@gmail.com>
Date: Sat, 21 Apr 2007 07:04:25 -0600
Local: Sat, Apr 21 2007 9:04 am
Subject: Re: [IronPython] pybench results for CPython and IronPython
I agree, Boo is a nice language, but given its foundation as a
statically-typed language it's not exactly a one-to-one comparison.

Of course you can always use the duck type capabilities to gain a
similar dynamic effect, but even a Boo duck type doesn't provide a
fair one-to-one as you still have to declare it as a duck type, and
once you do, the performance advantage gained from the static
compilation is obviously lessened.

Anybody happen to know of a similar benchmark comparison between
CPython and the duck type-based Boo equivalent?  And has anybody taken
the time to quantify how much benefit is gained in developer
productivity due to the rapid prototyping and interactive capabilities
provided to the .NET developer at runtime?

If for no other reason (and there are quite a few other reasons), the
fact that with IronPython I can quickly and easily move from idea >
through the thought process > and into a working prototype in about
the same amount of time it takes to open up Visual Studio and create a
new project is worth each and every additional cycle, cycles which can
easily be gained back by writing the production app in C# (or Boo, for
that matter) once things have solidified into something a bit more
production worthy.

Just food for thought, but if we're going to compare apples and
oranges lets at least take a bite out of the apple and peel the orange
before making a determination as to which one is preferable, and why.

On 4/21/07, Arman Bostani <ar...@twinsun.com> wrote:

--
/M:D

M. David Peterson
http://mdavid.name | http://www.oreillynet.com/pub/au/2354 |
http://dev.aol.com/blog/3155
_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
luismg  
View profile  
 More options Apr 21 2007, 10:55 am
From: luismg <luis...@gmail.com>
Date: Sat, 21 Apr 2007 14:55:35 -0000
Local: Sat, Apr 21 2007 10:55 am
Subject: Re: [IronPython] pybench results for CPython and IronPython
I also I agree with you two.
Boo is an extremelly nice and productive static language, and its
syntax is so similar to Python's that waisting time deciding what to
choose for a given task is almost non-sense.
I think the decision should be made based on platform and libraries to
be used mainly and, in any case, converting from python to Boo is
pretty straightforward.

Note that performance-wise, Boo is still completely unoptimized, as
its author recently recognized.
It has for sure the potential to become as fast as C#, but so far its
development has been concentrated in completeness and correction (as
is the case with IP).

For me, the difference between python's dynamicity and Boo is simply
that python allows for a more exploratory way of development. But if
performance is paramount, moving part or all the program to Boo is
extremelly simple.

Luis

On Apr 21, 10:04 am, "M. David Peterson" <xmlhac...@gmail.com> wrote:

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
M. David Peterson  
View profile  
 More options Apr 21 2007, 11:56 pm
From: "M. David Peterson" <xmlhac...@gmail.com>
Date: Sat, 21 Apr 2007 21:56:41 -0600
Local: Sat, Apr 21 2007 11:56 pm
Subject: Re: [IronPython] pybench results for CPython and IronPython

On 4/21/07, luismg <luis...@gmail.com> wrote:

> For me, the difference between python's dynamicity and Boo is simply
> that python allows for a more exploratory way of development.

I *LOVE* it! :D >
http://www.oreillynet.com/xml/blog/2007/04/qotdluisironpythondevlist_...

--
/M:D

M. David Peterson
http://mdavid.name | http://www.oreillynet.com/pub/au/2354 |
http://dev.aol.com/blog/3155

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jim Hugunin  
View profile  
 More options Apr 22 2007, 3:00 am
From: Jim Hugunin <Jim.Hugu...@microsoft.com>
Date: Sun, 22 Apr 2007 00:00:48 -0700
Local: Sun, Apr 22 2007 3:00 am
Subject: Re: [IronPython] pybench results for CPython and IronPython
I'd like to point out one fact about these benchmarks that seems to have been missed.  Seo's numbers are for running IronPython 1.1 on Mono - not on the Microsoft .NET implementation.  The Mono team has done excellent work with that project, but today the performance of the .NET implementation is still significantly better and is a much better platform for benchmarking IronPython's performance.

I reran pybench on my laptop tonight on the RTM version of .NET that ships with Windows Vista - and has been available for XP for quite some time now.  I compared with CPython-2.5.1 (the latest version).

Running on .NET, I find that IronPython is faster on some tests and CPython is faster on others.  We know that we still have performance work to do.  After all, IronPython just reached its 1.1 release and almost all of our recent work has been about compatibility and completeness.  However, the story is already quite interesting.  Out of the 51 tests in pybench, CPython is more than 2x faster on 10 of the tests and IronPython is more than 2x faster on 9 of the tests.  Depending on what your code does, either implementation could run faster.

The most interesting cases to me are the 5 tests where CPython is more than 3x faster than IronPython and the other 5 tests where IronPython is more than 3x faster than CPython.  CPython's strongest performance is in dictionaries with integer and string keys, list slicing, small tuples and code that actually throws and catches exceptions.  IronPython's strongest performance is in calling builtin functions, if/then/else blocks, calling python functions, deep recursion, and try/except blocks that don't actually catch an exception.

The places where IronPython is performing strongest are where it can use the .NET code generation and JIT optimization most effectively.  The places where it is slowest are mainly in runtime library implementation of core datatypes.  CPython's list and dictionary datatypes are written in C and have been hand-tuned for Python-style workloads over the past 10 years.  IronPython's datatypes are much newer and clearly need more tuning as the implementation matures.

The only two tests that really stand out as showing a deep performance issue are the two exception handling ones.  These are the only tests where either implementation is more than 4x faster than the other.  IronPython is 10x faster on the try/catch without an exception and CPython is 30x faster when an exception is actually raised.  This is a deliberate design decision within .NET to make code that doesn't throw exceptions run faster - even if that means slowing down code that does throw exceptions.  I'm fairly confident this was the right decision - and even remember the day long ago when Guido was discussing Python's exception system and explained that he'd accept almost any slow-down to the exceptional case in return for removing a single instruction from the non-exceptional path.

Thanks - Jim

My results
--------------------------------------------------------------------------- ----
PYBENCH 2.0
--------------------------------------------------------------------------- ----
* using Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Int
el)]
* disabled garbage collection
* system check interval set to maximum: 2147483647
* using timer: time.clock

--------------------------------------------------------------------------- ----
Benchmark: ipy11.pybench
--------------------------------------------------------------------------- ----

    Rounds: 10
    Warp:   10
    Timer:  time.time

    Machine Details:
       Platform ID:    cli-32bit
       Processor:

    Python:
       Implementation: Python
       Executable:     c:\ironpython-1.1\ipy.exe
       Version:        1.1.0
       Compiler:       X
       Bits:           32bit
       Build:          0 0 (#0)
       Unicode:        UCS2

--------------------------------------------------------------------------- ----
Comparing with: py25.pybench
--------------------------------------------------------------------------- ----

    Rounds: 10
    Warp:   10
    Timer:  time.clock

    Machine Details:
       Platform ID:    Microsoft-Windows-32bit-WindowsPE
       Processor:

    Python:
       Implementation: Python
       Executable:     c:\python25\python.exe
       Version:        2.5.1
       Compiler:       MSC v.1310 32 bit (Intel)
       Bits:           32bit
       Build:          Apr 18 2007 08:51:08 (#r251:54863)
       Unicode:        UCS2

Test                             minimum run-time        average  run-time
                                 this    other   diff    this    other   diff
--------------------------------------------------------------------------- ----
          BuiltinFunctionCalls:    44ms   181ms  -75.7%    48ms   182ms  -73.7%
           BuiltinMethodLookup:   335ms   160ms +109.1%   344ms   162ms +112.0%
                 CompareFloats:    99ms   111ms  -11.3%   105ms   112ms   -6.0%
         CompareFloatsIntegers:    63ms   125ms  -49.7%    65ms   126ms  -48.7%
               CompareIntegers:   102ms   114ms  -10.4%   105ms   115ms   -8.9%
        CompareInternedStrings:   175ms   126ms  +39.0%   180ms   127ms  +41.6%
                  CompareLongs:   111ms   105ms   +5.3%   114ms   106ms   +7.2%
                CompareStrings:   167ms   126ms  +32.7%   172ms   127ms  +35.1%
                CompareUnicode:   121ms   125ms   -3.4%   123ms   126ms   -2.0%
                 ConcatStrings:   482ms   272ms  +77.2%   533ms   275ms  +93.4%
                 ConcatUnicode:   305ms   216ms  +41.0%   350ms   217ms  +61.5%
               CreateInstances:   102ms   148ms  -31.1%   106ms   149ms  -28.9%
            CreateNewInstances:   326ms   131ms +148.0%   335ms   133ms +151.9%
       CreateStringsWithConcat:   228ms   147ms  +55.9%   238ms   148ms  +61.0%
       CreateUnicodeWithConcat:    91ms   154ms  -41.2%    94ms   157ms  -40.4%
                  DictCreation:   137ms   105ms  +30.0%   143ms   106ms  +33.9%
             DictWithFloatKeys:   301ms   230ms  +30.8%   306ms   232ms  +32.0%
           DictWithIntegerKeys:   343ms   106ms +223.0%   351ms   108ms +224.7%
            DictWithStringKeys:   388ms   102ms +282.1%   395ms   102ms +285.1%
                      ForLoops:    39ms    95ms  -59.0%    40ms    97ms  -58.5%
                    IfThenElse:    35ms   111ms  -68.9%    37ms   112ms  -66.8%
                   ListSlicing:   468ms   155ms +201.3%   477ms   157ms +204.4%
                NestedForLoops:    55ms   120ms  -54.1%    57ms   122ms  -53.0%
          NormalClassAttribute:   276ms   127ms +117.7%   282ms   129ms +119.7%
       NormalInstanceAttribute:   106ms   119ms  -11.0%   109ms   120ms   -9.7%
           PythonFunctionCalls:    37ms   130ms  -71.7%    40ms   131ms  -69.5%
             PythonMethodCalls:   127ms   158ms  -19.6%   132ms   159ms  -16.8%
                     Recursion:    49ms   177ms  -72.5%    50ms   179ms  -71.8%
                  SecondImport:   189ms   126ms  +50.4%   195ms   127ms  +53.6%
           SecondPackageImport:   196ms   134ms  +45.8%   202ms   136ms  +48.5%
         SecondSubmoduleImport:   266ms   177ms  +50.6%   272ms   180ms  +51.3%
       SimpleComplexArithmetic:    97ms   148ms  -34.4%   101ms   149ms  -32.0%
        SimpleDictManipulation:   311ms   118ms +164.4%   318ms   118ms +168.0%
         SimpleFloatArithmetic:    64ms   119ms  -46.6%    69ms   121ms  -43.2%
      SimpleIntFloatArithmetic:    41ms   100ms  -59.4%    43ms   102ms  -58.2%
       SimpleIntegerArithmetic:    43ms   100ms  -57.2%    44ms   101ms  -56.4%
        SimpleListManipulation:   121ms   104ms  +16.6%   124ms   105ms  +18.3%
          SimpleLongArithmetic:   126ms   113ms  +11.2%   131ms   115ms  +14.1%
                    SmallLists:   223ms   154ms  +45.0%   229ms   156ms  +47.0%
                   SmallTuples:   508ms   144ms +252.2%   523ms   145ms +259.7%
         SpecialClassAttribute:   275ms   124ms +121.2%   283ms   126ms +124.5%
      SpecialInstanceAttribute:   105ms   210ms  -50.1%   109ms   212ms  -48.5%
                StringMappings:   342ms   633ms  -46.0%   351ms   637ms  -44.9%
              StringPredicates:   222ms   217ms   +2.3%   228ms   219ms   +4.4%
                 StringSlicing:   245ms   162ms  +51.4%   260ms   163ms  +59.4%
                     TryExcept:     7ms   100ms  -93.4%    11ms   102ms  -89.4%
                TryRaiseExcept:  3413ms   114ms +2896.2%  3453ms   115ms +2910.6%
                  TupleSlicing:   227ms   150ms  +51.6%   235ms   151ms  +54.9%
               UnicodeMappings:   227ms   126ms  +79.6%   233ms   129ms  +81.4%
             UnicodePredicates:   218ms   129ms  +68.8%   224ms   132ms  +70.4%
                UnicodeSlicing:   211ms   182ms  +15.8%   223ms   184ms  +21.3%
--------------------------------------------------------------------------- ----
Totals:                         12781ms  7659ms  +66.9% 13191ms  7741ms  +70.4%

(this=ipy11.pybench, other=py25.pybench)
_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
M. David Peterson  
View profile  
 More options Apr 22 2007, 4:08 am
From: "M. David Peterson" <xmlhac...@gmail.com>
Date: Sun, 22 Apr 2007 02:08:22 -0600
Local: Sun, Apr 22 2007 4:08 am
Subject: Re: [IronPython] pybench results for CPython and IronPython

Hi Jim,

Your point regarding the performance difference between Mono and MS.NET is
an important one.  It's one of those things that should have been a lot more
obvious than it was.  None-the-less, thanks for bringing it to the surface!

One question: While I recognize the fact that for obvious reasons, ngen'ing
the IronPython assemblies as part of the distribution isn't an option (don't
worry, I'm not suggesting that it should or even could be an option ;-), has
anyone ran these same benchmarks against an ngen'd version of the assemblies
to compare the results?  I realize that performance gains are no guarantee,
but I have found that more often than not the performance gains are fairly
significant, and worth the extra effort to ngen during the setup processes
in *most* cases.  And in this case, given the fact that the CPython runtime
is compiled to native code and IronPython is still in all of its CIL glory
during the start-up process I wonder if its worth gaining a more
apples-to-apples comparison by running the same tests with ngen'd IP
assemblies?

I would suggest the same for Mono, but as of the last time I checked, there
is currently no support for AOT compiling .NET 2.0 assemblies (though I will
quickly check to verify, as its been a month or two since I last checked)

Worth pointing out: With these updated numbers, and given your statement,

IronPython just reached its 1.1 release and almost all of our recent work

> has been about compatibility and completeness.

I must admit, I am certainly looking forward to the result when "speed and
optimization" is added to the mix. :)

Thanks for all of your hard work!

On 4/22/07, Jim Hugunin <Jim.Hugu...@microsoft.com> wrote:

...

read more »

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Foord  
View profile  
 More options Apr 22 2007, 9:29 am
From: Michael Foord <fuzzy...@voidspace.org.uk>
Date: Sun, 22 Apr 2007 14:29:39 +0100
Local: Sun, Apr 22 2007 9:29 am
Subject: Re: [IronPython] pybench results for CPython and IronPython
Hi Jim,

Great to hear from you. Does this mean that IronPython 2 *has* seem some
optimization work ?

Anyway, thanks for the benchmark. *Very* interesting.

Michael Foord

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Foord  
View profile  
 More options Apr 22 2007, 10:15 am
From: Michael Foord <fuzzy...@voidspace.org.uk>
Date: Sun, 22 Apr 2007 15:15:27 +0100
Local: Sun, Apr 22 2007 10:15 am
Subject: Re: [IronPython] pybench results for CPython and IronPython
Jim Hugunin wrote:
> I'd like to point out one fact about these benchmarks that seems to have been missed.  Seo's numbers are for running IronPython 1.1 on Mono - not on the Microsoft .NET implementation.  The Mono team has done excellent work with that project, but today the performance of the .NET implementation is still significantly better and is a much better platform for benchmarking IronPython's performance.

And on close examination the results are impressive. Nice one.

The anomaly with raising exceptions is very weird though (IronPython is
around 30 times slower!) :

TryExcept:     7ms   100ms  -93.4%    11ms   102ms  -89.4%
TryRaiseExcept:  3413ms   114ms +2896.2%  3453ms   115ms +2910.6%

All the best,

Michael Foord

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Foord  
View profile  
 More options Apr 22 2007, 10:19 am
From: Michael Foord <fuzzy...@voidspace.org.uk>
Date: Sun, 22 Apr 2007 15:19:19 +0100
Local: Sun, Apr 22 2007 10:19 am
Subject: Re: [IronPython] pybench results for CPython and IronPython

Michael Foord wrote:
> Jim Hugunin wrote:

>> I'd like to point out one fact about these benchmarks that seems to have been missed.  Seo's numbers are for running IronPython 1.1 on Mono - not on the Microsoft .NET implementation.  The Mono team has done excellent work with that project, but today the performance of the .NET implementation is still significantly better and is a much better platform for benchmarking IronPython's performance.

> And on close examination the results are impressive. Nice one.

> The anomaly with raising exceptions is very weird though (IronPython is
> around 30 times slower!) :

> TryExcept:     7ms   100ms  -93.4%    11ms   102ms  -89.4%
> TryRaiseExcept:  3413ms   114ms +2896.2%  3453ms   115ms +2910.6%

Sorry for all the emails - I see that you addressed this in your
comments Jim.

Michael

...

read more »


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sanghyeon Seo  
View profile  
 More options Apr 22 2007, 10:35 am
From: "Sanghyeon Seo" <sanx...@gmail.com>
Date: Sun, 22 Apr 2007 23:35:29 +0900
Local: Sun, Apr 22 2007 10:35 am
Subject: Re: [IronPython] pybench results for CPython and IronPython
2007/4/22, Jim Hugunin <Jim.Hugu...@microsoft.com>:

> I'd like to point out one fact about these benchmarks that seems to have been missed.  Seo's numbers are for running IronPython 1.1 on Mono - not on the Microsoft .NET implementation.  The Mono team has done excellent work with that project, but today the performance of the .NET implementation is still significantly better and is a much better platform for benchmarking IronPython's performance.

I never tried to claim otherwise. Perhaps I should have been more explicit.

> I reran pybench on my laptop tonight on the RTM version of .NET that ships with Windows Vista - and has been available for XP for quite some time now.  I compared with CPython-2.5.1 (the latest version).
> (snip)

Can you provide the raw pybench result files? I can host it on my site
side-by-side with Mono results.

--
Seo Sanghyeon
_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jim Hugunin  
View profile  
 More options Apr 22 2007, 2:50 pm
From: Jim Hugunin <Jim.Hugu...@microsoft.com>
Date: Sun, 22 Apr 2007 11:50:41 -0700
Local: Sun, Apr 22 2007 2:50 pm
Subject: Re: [IronPython] pybench results for CPython and IronPython

Hi Seo,

I saw nothing wrong with your original post.  I had just noticed that others on the list were taking these numbers as indicative of expected IronPython performance anywhere and I wanted to be sure that they could also see the numbers on .NET for the rest of the story.

Trying to understand these numbers and use the relative performance to help improve all of the different implementations out there can only be a good thing.  Often these kinds of discrepancies can help identify low-hanging fruit for performance optimizations.  I know that we're going to be looking at our dictionaries and our slicing operation in much more detail during the next performance push.  I also remember that IronPython-0.6's poor performance on try/raise/except was noted by the Mono team - at the time, Mono was 10x slower than the already slow .NET here.  I believe that this was the original motivation for the performance improvements to that Mono path that now make it even faster than .NETs.

In the spirit of more data, I've attached my raw results files for you in case they help with your comparisons.  My results are on a ThinkPad X60 laptop with an intel T2400 1.83 GHz core duo processor and 1.5GB of RAM running Windows Vista.

Thanks - Jim

  py25.pybench
64K Download

  ipy11.pybench
58K Download

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arman Bostani  
View profile  
 More options Apr 24 2007, 2:42 pm
From: Arman Bostani <ar...@twinsun.com>
Date: Tue, 24 Apr 2007 11:42:30 -0700
Local: Tues, Apr 24 2007 2:42 pm
Subject: Re: [IronPython] pybench results for CPython and IronPython
I assume that IronPython is implemented with thread-safe data structures
(i.e. there's no GIL).  If so, then IronPython is at a disadvantage on
single-threaded benchmarks like pybench.

Just for fun, I tested System.Collections.SortedList against its thread
safe (Synchronized) version.  The latter was 5 times slower!

In light of this simple test, its possible that 1) IP is very efficient
at implementing thread safety 2) .NET Synchronized collections are
horribly slow 3) my assumption on IP's implementation are wrong.

-arman

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Dino Viehland  
View profile  
 More options Apr 24 2007, 3:37 pm
From: Dino Viehland <di...@exchange.microsoft.com>
Date: Tue, 24 Apr 2007 12:37:25 -0700
Local: Tues, Apr 24 2007 3:37 pm
Subject: Re: [IronPython] pybench results for CPython and IronPython
I think #2 is the winner here - the synchronized versions of the classes are much slower than just using a simple Monitor.  But IronPython's data structures are thread safe and we just use Monitor's for most of them (there are some more tuned classes in the system as well but there aren't too many of those).
________________________________________
From: users-boun...@lists.ironpython.com [users-boun...@lists.ironpython.com] On Behalf Of Arman Bostani [ar...@twinsun.com]
Sent: Tuesday, April 24, 2007 11:42 AM
To: us...@lists.ironpython.com
Subject: Re: [IronPython] pybench results for CPython and IronPython

I assume that IronPython is implemented with thread-safe data structures
(i.e. there's no GIL).  If so, then IronPython is at a disadvantage on
single-threaded benchmarks like pybench.

Just for fun, I tested System.Collections.SortedList against its thread
safe (Synchronized) version.  The latter was 5 times slower!

In light of this simple test, its possible that 1) IP is very efficient
at implementing thread safety 2) .NET Synchronized collections are
horribly slow 3) my assumption on IP's implementation are wrong.

-arman

_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
users mailing list
us...@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google