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@gmail.com>
On Tue, May 12, 2009 at 8:54 AM, Cesare Di Mauro <cesare.dimauro@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 x86_64 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
call_simple: 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
iterative_count: 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
normal_startup: 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
pickle_dict: 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
pickle_list: 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
regex_compile: 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
regex_effbot: 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
regex_v8: 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
startup_nosite: 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
threaded_count: 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
unpack_sequence: 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
unpickle_list: 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@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/cesare.di.mauro%40gmail.co...