Issue #4704: remove use of cmp() in pybench, bump its version number to 2.1,

and make it 2.6-compatible.
This commit is contained in:
Antoine Pitrou 2009-02-07 17:13:31 +00:00
parent 7bf8d4ed4d
commit 8a68122e9c
7 changed files with 40 additions and 19 deletions

View File

@ -394,6 +394,9 @@ Library
Tools/Demos Tools/Demos
----------- -----------
- Issue #4704: remove use of cmp() in pybench, bump its version number to 2.1,
and make it 2.6-compatible.
- Ttk demos added in Demo/tkinter/ttk/ - Ttk demos added in Demo/tkinter/ttk/
- Issue #4677: add two list comprehension tests to pybench. - Issue #4677: add two list comprehension tests to pybench.

View File

@ -2,7 +2,7 @@ from pybench import Test
class PythonFunctionCalls(Test): class PythonFunctionCalls(Test):
version = 2.0 version = 2.1
operations = 5*(1+4+4+2) operations = 5*(1+4+4+2)
rounds = 60000 rounds = 60000
@ -178,8 +178,8 @@ class BuiltinFunctionCalls(Test):
# localize functions # localize functions
f0 = globals f0 = globals
f1 = hash f1 = hash
f2 = cmp f2 = divmod
f3 = range f3 = max
# do calls # do calls
for i in range(self.rounds): for i in range(self.rounds):
@ -279,8 +279,8 @@ class BuiltinFunctionCalls(Test):
# localize functions # localize functions
f0 = dir f0 = dir
f1 = hash f1 = hash
f2 = range f2 = divmod
f3 = range f3 = max
# do calls # do calls
for i in range(self.rounds): for i in range(self.rounds):

View File

@ -11,6 +11,8 @@
""" """
from __future__ import print_function
__copyright__ = """\ __copyright__ = """\
Copyright (c), 1997-2006, Marc-Andre Lemburg (mal@lemburg.com) Copyright (c), 1997-2006, Marc-Andre Lemburg (mal@lemburg.com)
Copyright (c), 2000-2006, eGenix.com Software GmbH (info@egenix.com) Copyright (c), 2000-2006, eGenix.com Software GmbH (info@egenix.com)

View File

@ -82,7 +82,7 @@ Options and default settings:
--examples show examples of usage --examples show examples of usage
Version: Version:
2.0 2.1
The normal operation is to run the suite and display the The normal operation is to run the suite and display the
results. Use -f to save them for later reuse or comparisons. results. Use -f to save them for later reuse or comparisons.
@ -95,9 +95,9 @@ Available timers:
Examples: Examples:
python2.1 pybench.py -f p21.pybench python3.0 pybench.py -f p30.pybench
python2.5 pybench.py -f p25.pybench python3.1 pybench.py -f p31.pybench
python pybench.py -s p25.pybench -c p21.pybench python pybench.py -s p31.pybench -c p30.pybench
""" """
License License
@ -111,9 +111,9 @@ Sample output
""" """
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
PYBENCH 2.0 PYBENCH 2.1
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
* using Python 2.4.2 * using CPython 3.0
* disabled garbage collection * disabled garbage collection
* system check interval set to maximum: 2147483647 * system check interval set to maximum: 2147483647
* using timer: time.time * using timer: time.time
@ -141,8 +141,9 @@ Benchmark: 2006-06-12 12:09:25
Processor: x86_64 Processor: x86_64
Python: Python:
Implementation: CPython
Executable: /usr/local/bin/python Executable: /usr/local/bin/python
Version: 2.4.2 Version: 3.0
Compiler: GCC 3.3.4 (pre 3.3.5 20040809) Compiler: GCC 3.3.4 (pre 3.3.5 20040809)
Bits: 64bit Bits: 64bit
Build: Oct 1 2005 15:24:35 (#1) Build: Oct 1 2005 15:24:35 (#1)
@ -331,6 +332,11 @@ versions of the test will list as "n/a" to reflect the change.
Version History Version History
--------------- ---------------
2.1: made some minor changes for compatibility with Python 3.0:
- replaced cmp with divmod and range with max in Calls.py
(cmp no longer exists in 3.0, and range is a list in
Python 2.x and an iterator in Python 3.x)
2.0: rewrote parts of pybench which resulted in more repeatable 2.0: rewrote parts of pybench which resulted in more repeatable
timings: timings:
- made timer a parameter - made timer a parameter

View File

@ -1,6 +1,12 @@
from pybench import Test from pybench import Test
import sys import sys
try:
intern
except NameError:
intern = sys.intern
class ConcatStrings(Test): class ConcatStrings(Test):
version = 2.0 version = 2.0
@ -174,7 +180,7 @@ class CompareInternedStrings(Test):
def test(self): def test(self):
# Make sure the strings *are* interned # Make sure the strings *are* interned
s = sys.intern(''.join(map(str,range(10)))) s = intern(''.join(map(str,range(10))))
t = s t = s
for i in range(self.rounds): for i in range(self.rounds):
@ -240,7 +246,7 @@ class CompareInternedStrings(Test):
def calibrate(self): def calibrate(self):
s = sys.intern(''.join(map(str,range(10)))) s = intern(''.join(map(str,range(10))))
t = s t = s
for i in range(self.rounds): for i in range(self.rounds):

View File

@ -3,14 +3,15 @@
""" A Python Benchmark Suite """ A Python Benchmark Suite
""" """
# # Note: Please keep this module compatible to Python 2.6.
# Note: Please keep this module compatible to Python 1.5.2.
# #
# Tests may include features in later Python versions, but these # Tests may include features in later Python versions, but these
# should then be embedded in try-except clauses in the configuration # should then be embedded in try-except clauses in the configuration
# module Setup.py. # module Setup.py.
# #
from __future__ import print_function
# pybench Copyright # pybench Copyright
__copyright__ = """\ __copyright__ = """\
Copyright (c), 1997-2006, Marc-Andre Lemburg (mal@lemburg.com) Copyright (c), 1997-2006, Marc-Andre Lemburg (mal@lemburg.com)
@ -44,7 +45,7 @@ except ImportError:
import pickle import pickle
# Version number; version history: see README file ! # Version number; version history: see README file !
__version__ = '2.0' __version__ = '2.1'
### Constants ### Constants
@ -174,7 +175,7 @@ class Test:
# Version number of the test as float (x.yy); this is important # Version number of the test as float (x.yy); this is important
# for comparisons of benchmark runs - tests with unequal version # for comparisons of benchmark runs - tests with unequal version
# number will not get compared. # number will not get compared.
version = 2.0 version = 2.1
# The number of abstract operations done in each round of the # The number of abstract operations done in each round of the
# test. An operation is the basic unit of what you want to # test. An operation is the basic unit of what you want to
@ -403,7 +404,7 @@ class Benchmark:
roundtime = 0 roundtime = 0
# Benchmark version number as float x.yy # Benchmark version number as float x.yy
version = 2.0 version = 2.1
# Produce verbose output ? # Produce verbose output ?
verbose = 0 verbose = 0

View File

@ -31,6 +31,9 @@
the author. All Rights Reserved. the author. All Rights Reserved.
""" """
from __future__ import print_function
import time, sys import time, sys
# #