[Python-Dev] A wordcode-based Python (original) (raw)

Cesare Di Mauro cesare.di.mauro at gmail.com
Wed Nov 4 14:30:01 CET 2009


Hi Mart

I had some problems and little time to dedicate to wpython in the last period, but I restarted again with it in the last month.

Currently I'm working on changing and documenting the code so that almost every optimization can be selected. So you'll compile it enabling only the ones you are interested in.

I've also investigated about some ideas which Antoine told me on grouping together FASTs and CONSTs in order to reduce bytecodes, but I've found that the suggested solution brings some problems with the current function call implementation that can hurt performance on some situations (mostly with recursive ones, because usually they need to create new frames, and constants references must be copied and INCREFed). Since it will require huge changes to the current code base, I don't know if it's worth the effort just to verify the idea. I'll think about it when the project will be "finalized".

My plan is to finish the current work in a few days, and then remove the (may be ugly) hacks that I made to the Python object model that were needed to let tuples, lists and dictionaries be loaded as CONSTs. May be a the end of the month it'll be fixed (and the diffs against CPython will be reduced a lot, since a few files results changed).

Next, I need to changed the trace code (in frameobject.c) to let the test_trace.py pass (at this time two tests are disabled because the VM crashes).

Finally, I think to update the code base to 2.6.4.

I think to release everything at the end of the year, but if someone is interested I can do a partial release at the end of November.

Regarding your tests, they are very interesting, particularly for regex_v8 that showed an unexpected result for me. I'll investigate about it after I'll release wpython.

I you have any questions, I'm at your disposal (thanks for your tests!)

Cesare

2009/11/4 Mart Sõmermaa <mrts.pydev at gmail.com>

On Tue, May 12, 2009 at 8:54 AM, Cesare Di Mauro <cesare.dimauro at a-tono.com> wrote: >> Also, I checked out wpython at head to run Unladen Swallow's >> benchmarks against it, but it refuses to compile with either gcc 4.0.1 >> or 4.3.1 on Linux (fails in Python/ast.c). I can send you the build >> failures off-list, if you're interested. >> >> Thanks, >> Collin Winter > > I'm very interested, thanks. That's because I worked only on Windows > machines, so I definitely need to test and fix it to let it run on any other > platform. > > Cesare

Re-animating an old discussion -- Cesare, any news on the wpython front? I did a checkout from http://wpython.googlecode.com/svn/trunk and was able to ./configure and make successfully on my 64-bit Linux box as well as to run the Unladen benchmarks. Given svn co http://svn.python.org/projects/python/tags/r261 in py261 and svn co http://wpython.googlecode.com/svn/trunk in wpy, $ python unladen-tests/perf.py -rm --benchmarks=-2to3,all py261/python wpy/python gives the following results: Report on Linux foo 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x8664 Total CPU cores: 2 ai: Min: 0.640516 -> 0.586532: 9.20% faster Avg: 0.677346 -> 0.632785: 7.04% faster Significant (t=4.336740, a=0.95) Stddev: 0.05839 -> 0.08455: 30.94% larger Mem max: 7412.000 -> 6768.000: 9.52% smaller Usage over time: http://tinyurl.com/ykwhmcc

callsimple: Min: 1.880816 -> 1.701622: 10.53% faster Avg: 1.944320 -> 1.778701: 9.31% faster Significant (t=14.323045, a=0.95) Stddev: 0.09885 -> 0.06000: 64.74% smaller Mem max: 8100.000 -> 6636.000: 22.06% smaller Usage over time: http://tinyurl.com/yzsswgp django: Min: 1.287158 -> 1.315700: 2.17% slower Avg: 1.330423 -> 1.366978: 2.67% slower Significant (t=-4.475769, a=0.95) Stddev: 0.05663 -> 0.05885: 3.78% larger Mem max: 15508.000 -> 16228.000: 4.44% larger Usage over time: http://tinyurl.com/yfpbmjn iterativecount: Min: 0.211620 -> 0.124646: 69.78% faster Avg: 0.222778 -> 0.159868: 39.35% faster Significant (t=9.291635, a=0.95) Stddev: 0.04239 -> 0.05279: 19.69% larger Mem max: 7388.000 -> 6680.000: 10.60% smaller Usage over time: http://tinyurl.com/yj7s8h4 normalstartup: Min: 1.060017 -> 0.991366: 6.92% faster Avg: 1.189612 -> 1.170067: 1.67% faster Significant (t=2.002086, a=0.95) Stddev: 0.06942 -> 0.06864: 1.13% smaller Mem max: 3252.000 -> 4648.000: 30.03% larger Usage over time: http://tinyurl.com/ygo3bwt pickle: Min: 2.027566 -> 1.948784: 4.04% faster Avg: 2.051633 -> 2.043656: 0.39% faster Not significant Stddev: 0.03095 -> 0.07348: 57.88% larger Mem max: 8544.000 -> 7340.000: 16.40% smaller Usage over time: http://tinyurl.com/ykg9dn2 pickledict: Min: 1.658693 -> 1.656844: 0.11% faster Avg: 1.689483 -> 1.698176: 0.51% slower Not significant Stddev: 0.16945 -> 0.09403: 80.20% smaller Mem max: 6716.000 -> 7636.000: 12.05% larger Usage over time: http://tinyurl.com/yjhyame picklelist: Min: 0.919083 -> 0.894758: 2.72% faster Avg: 0.956513 -> 0.921314: 3.82% faster Significant (t=2.131237, a=0.95) Stddev: 0.12744 -> 0.10506: 21.31% smaller Mem max: 6804.000 -> 8792.000: 22.61% larger Usage over time: http://tinyurl.com/ylc3ezf pybench: Min: 58781 -> 50836: 15.63% faster Avg: 60009 -> 51788: 15.87% faster regexcompile: Min: 0.934131 -> 0.862323: 8.33% faster Avg: 0.962159 -> 0.884848: 8.74% faster Significant (t=13.587168, a=0.95) Stddev: 0.04685 -> 0.03229: 45.11% smaller Mem max: 12584.000 -> 12740.000: 1.22% larger Usage over time: http://tinyurl.com/yjngu8j regexeffbot: Min: 0.130686 -> 0.122483: 6.70% faster Avg: 0.143453 -> 0.138078: 3.89% faster Not significant Stddev: 0.01864 -> 0.03177: 41.32% larger Mem max: 7652.000 -> 6660.000: 14.89% smaller Usage over time: http://tinyurl.com/ykcgntf regexv8: Min: 0.135130 -> 0.150092: 9.97% slower Avg: 0.138027 -> 0.177309: 22.15% slower Significant (t=-8.197595, a=0.95) Stddev: 0.00258 -> 0.04785: 94.60% larger Mem max: 11124.000 -> 12236.000: 9.09% larger Usage over time: http://tinyurl.com/ykb5vzu rietveld: Min: 0.848245 -> 0.816473: 3.89% faster Avg: 1.033925 -> 1.019889: 1.38% faster Not significant Stddev: 0.11242 -> 0.13006: 13.56% larger Mem max: 23792.000 -> 24548.000: 3.08% larger Usage over time: http://tinyurl.com/yhdvz5v slowpickle: Min: 0.876736 -> 0.800203: 9.56% faster Avg: 0.932808 -> 0.870577: 7.15% faster Significant (t=5.020426, a=0.95) Stddev: 0.05600 -> 0.11059: 49.36% larger Mem max: 7200.000 -> 7276.000: 1.04% larger Usage over time: http://tinyurl.com/ykt2brq slowspitfire: Min: 1.029100 -> 0.948458: 8.50% faster Avg: 1.062486 -> 1.020777: 4.09% faster Significant (t=4.581669, a=0.95) Stddev: 0.05441 -> 0.07298: 25.44% larger Mem max: 139792.000 -> 129264.000: 8.14% smaller Usage over time: http://tinyurl.com/yh7vmlh slowunpickle: Min: 0.411744 -> 0.356784: 15.40% faster Avg: 0.444638 -> 0.393261: 13.06% faster Significant (t=7.009269, a=0.95) Stddev: 0.04147 -> 0.06044: 31.38% larger Mem max: 7132.000 -> 7848.000: 9.12% larger Usage over time: http://tinyurl.com/yfwvz3g startupnosite: Min: 0.664456 -> 0.598770: 10.97% faster Avg: 0.933034 -> 0.761228: 22.57% faster Significant (t=20.660776, a=0.95) Stddev: 0.09645 -> 0.06728: 43.37% smaller Mem max: 1940.000 -> 1940.000: -0.00% smaller Usage over time: http://tinyurl.com/yzzxcmd threadedcount: Min: 0.220059 -> 0.138708: 58.65% faster Avg: 0.232347 -> 0.156120: 48.83% faster Significant (t=23.804797, a=0.95) Stddev: 0.01889 -> 0.02586: 26.96% larger Mem max: 6460.000 -> 7664.000: 15.71% larger Usage over time: http://tinyurl.com/yzm3awu unpacksequence: Min: 0.000129 -> 0.000120: 7.57% faster Avg: 0.000218 -> 0.000194: 12.14% faster Significant (t=3.946194, a=0.95) Stddev: 0.00139 -> 0.00128: 8.13% smaller Mem max: 18948.000 -> 19056.000: 0.57% larger Usage over time: http://tinyurl.com/yf8es3f unpickle: Min: 1.191468 -> 1.206198: 1.22% slower Avg: 1.248471 -> 1.281957: 2.61% slower Significant (t=-2.658526, a=0.95) Stddev: 0.05513 -> 0.11325: 51.32% larger Mem max: 7776.000 -> 8676.000: 10.37% larger Usage over time: http://tinyurl.com/yz96gw2 unpicklelist: Min: 0.922200 -> 0.861167: 7.09% faster Avg: 0.955964 -> 0.976829: 2.14% slower Not significant Stddev: 0.04374 -> 0.21061: 79.23% larger Mem max: 6820.000 -> 8324.000: 18.07% larger Usage over time: http://tinyurl.com/yjbraxg --- The diff between the two trees is at http://dpaste.org/RpIv/ Best, Mart Sõmermaa


Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/cesare.di.mauro%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20091104/314237d9/attachment-0001.htm>



More information about the Python-Dev mailing list