You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
from pyutil import randutil
|
|
import random
|
|
from decimal import Decimal
|
|
|
|
l = []
|
|
s = None
|
|
|
|
def data_strings(N):
|
|
assert isinstance(N, int), (N, type(N))
|
|
del l[:]
|
|
for i in range(N):
|
|
l.append(repr(randutil.insecurerandstr(4)))
|
|
global s
|
|
s = json.dumps(l)
|
|
|
|
def data_Decimals(N):
|
|
del l[:]
|
|
for i in range(N):
|
|
l.append(Decimal(str(random.randrange(0, 1000000000)))/random.randrange(1, 1000000000))
|
|
global s
|
|
s = jsonutil.dumps(l)
|
|
|
|
def data_floats(N):
|
|
del l[:]
|
|
for i in range(N):
|
|
l.append(float(random.randrange(0, 1000000000))/random.randrange(1, 1000000000))
|
|
global s
|
|
s = json.dumps(l)
|
|
|
|
import json
|
|
from pyutil import jsonutil
|
|
|
|
def je(N):
|
|
return json.dumps(l)
|
|
|
|
def ue(N):
|
|
return jsonutil.dumps(l)
|
|
|
|
def jd(N):
|
|
return json.loads(s)
|
|
|
|
def ud(N):
|
|
return jsonutil.loads(s)
|
|
|
|
from pyutil import benchutil
|
|
|
|
for i in (data_strings, data_floats, data_Decimals):
|
|
for e in (ud, ue, jd, je):
|
|
# for e in (ue,):
|
|
print "i: %s, e: %s" % (i, e,)
|
|
try:
|
|
benchutil.bench(e, initfunc=i, TOPXP=5, profile=False)
|
|
except TypeError, e:
|
|
print "skipping due to %s" % (e,)
|
|
benchutil.print_bench_footer()
|
|
|