Performance of Python 2.3 and 2.4

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Michal Kwiatkowski

    #1

    Performance of Python 2.3 and 2.4

    Hi!

    I was just wondering...

    Python 2.3.5 (#2, Mar 6 2006, 10:12:24)
    [GCC 4.0.3 20060304 (prerelease) (Debian 4.0.2-10)] on linux2
    Type "help", "copyright" , "credits" or "license" for more information.[color=blue][color=green][color=darkred]
    >>> import timeit
    >>> a = timeit.Timer('2 **100000000')
    >>> b = timeit.Timer('1 122334455667788 99 * 112233445566778 899')
    >>> a.timeit(1)[/color][/color][/color]
    5.3986599445343 018[color=blue][color=green][color=darkred]
    >>> b.timeit()[/color][/color][/color]
    0.5930960178375 2441

    Python 2.4.2 (#2, Nov 20 2005, 17:04:48)
    [GCC 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)] on linux2
    Type "help", "copyright" , "credits" or "license" for more information.[color=blue][color=green][color=darkred]
    >>> import timeit
    >>> a = timeit.Timer('2 **100000000')
    >>> b = timeit.Timer('1 122334455667788 99 * 112233445566778 899')
    >>> a.timeit(1)[/color][/color][/color]
    13.129707813262 939[color=blue][color=green][color=darkred]
    >>> b.timeit()[/color][/color][/color]
    0.7285480499267 5781

    Why long numbers operations are slower in 2.4?

    mk
    --
    . o . >> http://joker.linuxstuff.pl <<
    . . o It's easier to get forgiveness for being wrong
    o o o than forgiveness for being right.
  • Tim Peters

    #2
    Re: Performance of Python 2.3 and 2.4

    [Michal Kwiatkowski][color=blue]
    > I was just wondering...
    >
    > Python 2.3.5 (#2, Mar 6 2006, 10:12:24)
    > [GCC 4.0.3 20060304 (prerelease) (Debian 4.0.2-10)] on linux2
    > Type "help", "copyright" , "credits" or "license" for more information.[color=green][color=darkred]
    > >>> import timeit
    > >>> a = timeit.Timer('2 **100000000')
    > >>> b = timeit.Timer('1 122334455667788 99 * 112233445566778 899')
    > >>> a.timeit(1)[/color][/color]
    > 5.3986599445343 018[color=green][color=darkred]
    > >>> b.timeit()[/color][/color]
    > 0.5930960178375 2441
    >
    > Python 2.4.2 (#2, Nov 20 2005, 17:04:48)
    > [GCC 4.0.3 20051111 (prerelease) (Debian 4.0.2-4)] on linux2
    > Type "help", "copyright" , "credits" or "license" for more information.[color=green][color=darkred]
    > >>> import timeit
    > >>> a = timeit.Timer('2 **100000000')
    > >>> b = timeit.Timer('1 122334455667788 99 * 112233445566778 899')
    > >>> a.timeit(1)[/color][/color]
    > 13.129707813262 939[color=green][color=darkred]
    > >>> b.timeit()[/color][/color]
    > 0.7285480499267 5781
    >
    > Why long numbers operations are slower in 2.4?[/color]

    In general, they're not. Here on Windows, with those specific examples:

    """
    $ type ls.py
    import timeit
    a = timeit.Timer('2 **100000000')
    b = timeit.Timer('1 122334455667788 99 * 112233445566778 899')
    print a.timeit(1)
    print b.timeit()

    $ \python23\pytho n ls.py
    6.96490123499
    0.266523717213

    $ \python24\pytho n ls.py
    6.81509407621
    0.204446820019
    """

    So 2.4 is faster on those specific examples here. Some of that's
    probably due to code changes, and the rest to that the released
    Windows 2.3.5 and 2.4.3 were compiled with different versions of MS's
    C compiler, and VC 7.1 happened to do better optimization of the
    relevant C code than VC 6.0.

    I note that your Pythons were compiled with different (pre)releases of
    gcc, so if you want to pursue this the first thing to do is compile
    both Pythons with the same gcc. The effectiveness of the platform C's
    optimization matters a lot here.

    Comment

    • Felipe Almeida Lessa

      #3
      Re: Performance of Python 2.3 and 2.4

      Em Dom, 2006-04-23 às 00:20 +0200, Michal Kwiatkowski escreveu:[color=blue]
      > Hi!
      >
      > I was just wondering...[/color]

      Probably there is another factor involved:

      $ python2.3
      Python 2.3.5 (#2, Mar 6 2006, 10:12:24)
      [GCC 4.0.3 20060304 (prerelease) (Debian 4.0.2-10)] on linux2
      Type "help", "copyright" , "credits" or "license" for more information.[color=blue][color=green][color=darkred]
      >>> import timeit
      >>> timeit.Timer('2 **100000000').t imeit(1)[/color][/color][/color]
      4.6463479995727 539[color=blue][color=green][color=darkred]
      >>> timeit.Timer('1 122334455667788 99 * 112233445566778 899').timeit()[/color][/color][/color]
      0.4485368728637 6953


      $ python2.4
      Python 2.4.3 (#2, Mar 30 2006, 21:52:26)
      [GCC 4.0.3 (Debian 4.0.3-1)] on linux2
      Type "help", "copyright" , "credits" or "license" for more information.[color=blue][color=green][color=darkred]
      >>> import timeit
      >>> timeit.Timer('2 **100000000').t imeit(1)[/color][/color][/color]
      4.9987671375274 658[color=blue][color=green][color=darkred]
      >>> timeit.Timer('1 122334455667788 99 * 112233445566778 899').timeit()[/color][/color][/color]
      0.3696830272674 5605

      --
      Felipe.

      Comment

      Working...