ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> python-dev
python-dev
Re: [Python-Dev] A wordcode-based Python
by Cesare Di Mauro other posts by this author
Nov 4 2009 5:33AM messages near this date
Re: [Python-Dev] A wordcode-based Python | [Python-Dev] No buildbot to test wide unicode?
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@[...].com> 

>  On Tue, May 12, 2009 at 8:54 AM, Cesare Di Mauro
>  <cesare.dimauro@[...].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@[...].org
>  http://mail.python.org/mailman/listinfo/python-dev
>  Unsubscribe:
>  http://mail.python.org/mailman/options/python-dev/cesare.di.mauro%40gmail.com
> 
Thread:
Mrts Pydev
Collin Winter
Mrts Pydev
Cesare Di Mauro

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved