My favorites | Sign in
Google
                
Revision: r778
Author:  jyasskin
Date:  Jul 24, 2009
Review scores: No one has yet scored this revision.
 

Log message

Add a class to gather runtime type and branch feedback, and use the eval loop to
fill it with data. I've also added a second class to gather full feedback so
that we can measure how real apps behave, but I haven't wired it up to a
configure flag.  A subsequent patch will use this to generate guards for
generated machine code.

Benchmarks for the eval loop on 64 bits:

$ ./perf.py -b -2to3 -m ~/opensource/unladen-swallow/trunk/opt/python
~/opensource/unladen-swallow/patch/opt/python


django:
Min: 0.887909 -> 0.903288: 1.70% slower
Avg: 0.908373 -> 0.944969: 3.87% slower
Significant (t=-7.995901, a=0.95)
Stddev: 0.02480 -> 0.02079: 19.28% smaller

Mem max: 27872.000 -> 33048.000: 15.66% larger
Usage over time: http://tinyurl.com/n6mkcz


slowpickle:
Min: 0.534891 -> 0.549578: 2.67% slower
Avg: 0.565103 -> 0.581774: 2.87% slower
Not significant
Stddev: 0.09511 -> 0.09956: 4.47% larger

Mem max: 25868.000 -> 27312.000: 5.29% larger
Usage over time: http://tinyurl.com/nap3lj


slowspitfire:
Min: 0.555740 -> 0.610426: 8.96% slower
Avg: 0.563715 -> 0.623751: 9.62% slower
Significant (t=-23.964699, a=0.95)
Stddev: 0.01272 -> 0.01233: 3.14% smaller

Mem max: 137144.000 -> 140732.000: 2.55% larger
Usage over time: http://tinyurl.com/n7sc6p


slowunpickle:
Min: 0.221658 -> 0.217232: 2.04% faster
Avg: 0.231965 -> 0.235013: 1.30% slower
Not significant
Stddev: 0.02580 -> 0.03569: 27.72% larger

Mem max: 15684.000 -> 17112.000: 8.35% larger
Usage over time: http://tinyurl.com/laflp9

Affected files

    expand all   collapse all
Modify/trunk/Include/code.hdiff
Modify/trunk/Lib/test/test_sys.pydiff
Modify/trunk/Makefile.pre.indiff
Modify/trunk/Objects/codeobject.cdiff
Modify/trunk/Python/eval.ccdiff
Add/trunk/Unittests/RuntimeFeedbackTest.ccdiff
Add/trunk/Util/RuntimeFeedback.ccdiff
Add/trunk/Util/RuntimeFeedback.hdiff
Add/trunk/Util/RuntimeFeedback_fwd.hdiff

Project members, sign in to write a code review