[Python-checkins] python/nondist/sandbox/parrotbench b.py, NONE, 1.1 b3.py, NONE, 1.1 out3, NONE, 1.1 b0.py, 1.2, 1.3

gvanrossum at users.sourceforge.net gvanrossum at users.sourceforge.net
Tue Dec 30 19:10:37 EST 2003


Update of /cvsroot/python/python/nondist/sandbox/parrotbench
In directory sc8-pr-cvs1:/tmp/cvs-serv29507

Modified Files:
	b0.py 
Added Files:
	b.py b3.py out3 
Log Message:
Add driver.  Add sorting experiment.

--- NEW FILE: b.py ---
import b0
import b1
import b2
import b3

--- NEW FILE: b3.py ---
class Random:

    def __init__(self, x, y, z):
        self._seed = (x, y, z)

    def random(self):
        x, y, z = self._seed
        x = (171 * x) % 30269
        y = (172 * y) % 30307
        z = (170 * z) % 30323
        self._seed = x, y, z
        return (x/30269.0 + y/30307.0 + z/30323.0) % 1.0

    def uniform(self, a, b):
        return a + (b-a) * self.random()

    def randint(self, a, b):
        return a + int((b+1-a) * self.random())

    def choice(self, seq):
        return seq[int(self.random() * len(seq))]

rgen = Random(57, 86, 708 % 650)

compares = 0

T = int

class TT(T):
    def __repr__(self):
        return "T(%d)" % self

class Int(TT):
    def __new__(cls, value=None):
        if value is None:
            value = rgen.randint(0, 0x7ffffffe)
        return TT.__new__(cls, value)

def icmp(a, b):
    global compares
    compares += 1
    return T.__cmp__(a, b)

N = 20000
K = 1

if __debug__: import time

def sortum(data, cmp=None):
    global compares
    compares = 0
    data = data[:]
    if __debug__: t0 = time.time()
    if cmp is None:
        print "using None"
        data.sort()
    else:
        print "using", cmp.__name__
        data.sort(cmp)
    if __debug__: t1 = time.time()
    print "Z", data[:K], data[N//2:N//2+K], data[-K:]
    print compares,
    if __debug__:  print "%.3f" % (t1-t0),
    print

def main():
    if __debug__: t0 = time.time()
    data = [Int() for x in xrange(N)]
    if __debug__: t1 = time.time()
    if __debug__: print "%.3f" % (t1-t0)
    print "A", data[:K], data[N//2:N//2+K], data[-K:]
    sortum(data)
    sortum(data, cmp)
    sortum(data, icmp)
    TT.__cmp__ = icmp
    sortum(data)
    TT.__cmp__ = T.__cmp__
    sortum(data)

main()

--- NEW FILE: out3 ---
0.277
A [T(290448019)] [T(606178844)] [T(186360231)]
using None
Z [T(387083)] [T(1077158269)] [T(2146971462)]
0 0.013
using cmp
Z [T(387083)] [T(1077158269)] [T(2146971462)]
0 0.055
using icmp
Z [T(387083)] [T(1077158269)] [T(2146971462)]
119885 0.265
using None
Z [T(387083)] [T(1077158269)] [T(2146971462)]
119885 0.331
using None
Z [T(387083)] [T(1077158269)] [T(2146971462)]
0 0.025

Index: b0.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/parrotbench/b0.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** b0.py	30 Dec 2003 16:28:25 -0000	1.2
--- b0.py	31 Dec 2003 00:10:34 -0000	1.3
***************
*** 693,697 ****
  output = OutputFile()
  def write(s):
!     s = str(s)
      i = s.find(' at 0x')
      while i > 0:
--- 693,697 ----
  output = OutputFile()
  def write(s):
!     s = str(s).replace('<b0.', '<__main__.')
      i = s.find(' at 0x')
      while i > 0:





More information about the Python-checkins mailing list