[pypy-commit] pypy improve-rbigint: New results
stian
noreply at buildbot.pypy.org
Sat Jul 21 18:41:51 CEST 2012
Author: stian
Branch: improve-rbigint
Changeset: r56360:e14a09f12678
Date: 2012-07-08 00:24 +0200
http://bitbucket.org/pypy/pypy/changeset/e14a09f12678/
Log: New results
diff --git a/pypy/translator/goal/targetbigintbenchmark.py b/pypy/translator/goal/targetbigintbenchmark.py
--- a/pypy/translator/goal/targetbigintbenchmark.py
+++ b/pypy/translator/goal/targetbigintbenchmark.py
@@ -10,43 +10,49 @@
"""
All benchmarks are run using --opt=2 and minimark gc (default).
+ Benchmark changes:
+ 2**N is a VERY heavy operation in default pypy, default to 10 million instead of 500,000 used like an hour to finish.
+
A cutout with some benchmarks.
Pypy default:
- 2.803071
- 2.366586
- 2.428205
- 4.408400
- 4.424533
- 537.338
- 268.3339
- 8.548186
- 12.197392
- 17.629869
- 2.360716
- 14.315827
- 17.963899
- 6.604541
- Sum: 901.7231250000001
+ mod by 2: 7.978181
+ mod by 10000: 4.016121
+ mod by 1024 (power of two): 3.966439
+ Div huge number by 2**128: 2.906821
+ rshift: 2.444589
+ lshift: 2.500746
+ Floordiv by 2: 4.431134
+ Floordiv by 3 (not power of two): 4.404396
+ 2**500000: 23.206724
+ (2**N)**5000000 (power of two): 13.886118
+ 10000 ** BIGNUM % 100 8.464378
+ i = i * i: 10.121505
+ n**10000 (not power of two): 16.296989
+ Power of two ** power of two: 2.224125
+ v = v * power of two 12.228391
+ v = v * v 17.119933
+ v = v + v 6.489957
+ Sum: 142.686547
Pypy with improvements:
- mod by 2: 0.006297
- mod by 10000: 3.693501
- mod by 1024 (power of two): 0.011243
- Div huge number by 2**128: 2.163590
- rshift: 2.219846
- lshift: 2.689848
- Floordiv by 2: 1.460396
- Floordiv by 3 (not power of two): 4.071267
- 2**10000000: 9.720923
- (2**N)**100000000 (power of two): 1.639600
- 10000 ** BIGNUM % 100 1.738285
- i = i * i: 4.861456
- n**10000 (not power of two): 6.206040
- Power of two ** power of two: 0.038726
- v = v * power of two 3.633579
- v = v * v 8.180117
- v = v + v 5.006874
- Sum: 57.341588
+ mod by 2: 0.007535
+ mod by 10000: 3.686409
+ mod by 1024 (power of two): 0.011153
+ Div huge number by 2**128: 2.162245
+ rshift: 2.211261
+ lshift: 2.711231
+ Floordiv by 2: 1.481641
+ Floordiv by 3 (not power of two): 4.067045
+ 2**500000: 0.155143
+ (2**N)**5000000 (power of two): 0.098826
+ 10000 ** BIGNUM % 100 1.742109
+ i = i * i: 4.836238
+ n**10000 (not power of two): 6.196422
+ Power of two ** power of two: 0.038207
+ v = v * power of two 3.629006
+ v = v * v 8.220768
+ v = v + v 4.998141
+ Sum: 46.253380
A pure python form of those tests where also run
Improved pypy | Pypy | CPython 2.7.3
@@ -161,24 +167,24 @@
print "Floordiv by 3 (not power of two):",_time
t = time()
- num = rbigint.fromint(10000000)
+ num = rbigint.fromint(500000)
for n in xrange(10000):
rbigint.pow(V2, num)
_time = time() - t
sumTime += _time
- print "2**10000000:",_time
+ print "2**500000:",_time
t = time()
- num = rbigint.fromint(100000000)
+ num = rbigint.fromint(5000000)
for n in xrange(31):
rbigint.pow(rbigint.pow(V2, rbigint.fromint(n)), num)
_time = time() - t
sumTime += _time
- print "(2**N)**100000000 (power of two):",_time
+ print "(2**N)**5000000 (power of two):",_time
t = time()
num = rbigint.pow(rbigint.fromint(10000), rbigint.fromint(2 ** 8))
More information about the pypy-commit
mailing list