<div>Hi Mart<br></div><div><br></div><div>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.</div><div><br></div><div><div>Currently I&#39;m working on changing and documenting the code so that almost every optimization can be selected. So you&#39;ll compile it enabling only the ones you are interested in.</div>
</div><div><br></div><div><div>I&#39;ve also investigated about some ideas which Antoine told me on grouping together FASTs and CONSTs in order to reduce bytecodes, but I&#39;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).<br>
</div><div>Since it will require huge changes to the current code base, I don&#39;t know if it&#39;s worth the effort just to verify the idea. I&#39;ll think about it when the project will be &quot;finalized&quot;.</div></div>
<div><br></div><div>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.</div>
<div>May be a the end of the month it&#39;ll be fixed (and the diffs against CPython will be reduced a lot, since a few files results changed).</div><div><br></div><div>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).</div>
<div><br></div><div>Finally, I think to update the code base to 2.6.4.</div><div><br></div><div>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.</div>
<div><br></div><div>Regarding your tests, they are very interesting, particularly for regex_v8 that showed an unexpected result for me. I&#39;ll investigate about it after I&#39;ll release wpython.</div><div><br></div><div>
I you have any questions, I&#39;m at your disposal (thanks for your tests!)</div><div><br></div><div>Cesare</div><div><br></div><div class="gmail_quote">2009/11/4 Mart Sõmermaa <span dir="ltr">&lt;<a href="mailto:mrts.pydev@gmail.com">mrts.pydev@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">On Tue, May 12, 2009 at 8:54 AM, Cesare Di Mauro<br>
&lt;<a href="mailto:cesare.dimauro@a-tono.com">cesare.dimauro@a-tono.com</a>&gt; wrote:<br>
&gt;&gt; Also, I checked out wpython at head to run Unladen Swallow&#39;s<br>
&gt;&gt; benchmarks against it, but it refuses to compile with either gcc 4.0.1<br>
&gt;&gt; or 4.3.1 on Linux (fails in Python/ast.c). I can send you the build<br>
&gt;&gt; failures off-list, if you&#39;re interested.<br>
&gt;&gt;<br>
&gt;&gt; Thanks,<br>
&gt;&gt; Collin Winter<br>
&gt;<br>
&gt; I&#39;m very interested, thanks. That&#39;s because I worked only on Windows<br>
&gt; machines, so I definitely need to test and fix it to let it run on any other<br>
&gt; platform.<br>
&gt;<br>
&gt; Cesare<br>
<br>
Re-animating an old discussion -- Cesare, any news on the wpython front?<br>
<br>
I did a checkout from <a href="http://wpython.googlecode.com/svn/trunk" target="_blank">http://wpython.googlecode.com/svn/trunk</a> and<br>
was able to ./configure and make successfully on my 64-bit Linux box<br>
as well as to run the Unladen benchmarks.<br>
<br>
Given svn co <a href="http://svn.python.org/projects/python/tags/r261" target="_blank">http://svn.python.org/projects/python/tags/r261</a> in py261<br>
and svn co <a href="http://wpython.googlecode.com/svn/trunk" target="_blank">http://wpython.googlecode.com/svn/trunk</a> in wpy,<br>
<br>
$ python unladen-tests/perf.py -rm --benchmarks=-2to3,all py261/python<br>
wpy/python<br>
<br>
gives the following results:<br>
<br>
Report on Linux foo 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16<br>
14:05:01 UTC 2009 x86_64<br>
Total CPU cores: 2<br>
<br>
ai:<br>
Min: 0.640516 -&gt; 0.586532: 9.20% faster<br>
Avg: 0.677346 -&gt; 0.632785: 7.04% faster<br>
Significant (t=4.336740, a=0.95)<br>
Stddev: 0.05839 -&gt; 0.08455: 30.94% larger<br>
<br>
Mem max: 7412.000 -&gt; 6768.000: 9.52% smaller<br>
Usage over time: <a href="http://tinyurl.com/ykwhmcc" target="_blank">http://tinyurl.com/ykwhmcc</a><br>
<br>
<br>
call_simple:<br>
Min: 1.880816 -&gt; 1.701622: 10.53% faster<br>
Avg: 1.944320 -&gt; 1.778701: 9.31% faster<br>
Significant (t=14.323045, a=0.95)<br>
Stddev: 0.09885 -&gt; 0.06000: 64.74% smaller<br>
<br>
Mem max: 8100.000 -&gt; 6636.000: 22.06% smaller<br>
Usage over time: <a href="http://tinyurl.com/yzsswgp" target="_blank">http://tinyurl.com/yzsswgp</a><br>
<br>
<br>
django:<br>
Min: 1.287158 -&gt; 1.315700: 2.17% slower<br>
Avg: 1.330423 -&gt; 1.366978: 2.67% slower<br>
Significant (t=-4.475769, a=0.95)<br>
Stddev: 0.05663 -&gt; 0.05885: 3.78% larger<br>
<br>
Mem max: 15508.000 -&gt; 16228.000: 4.44% larger<br>
Usage over time: <a href="http://tinyurl.com/yfpbmjn" target="_blank">http://tinyurl.com/yfpbmjn</a><br>
<br>
<br>
iterative_count:<br>
Min: 0.211620 -&gt; 0.124646: 69.78% faster<br>
Avg: 0.222778 -&gt; 0.159868: 39.35% faster<br>
Significant (t=9.291635, a=0.95)<br>
Stddev: 0.04239 -&gt; 0.05279: 19.69% larger<br>
<br>
Mem max: 7388.000 -&gt; 6680.000: 10.60% smaller<br>
Usage over time: <a href="http://tinyurl.com/yj7s8h4" target="_blank">http://tinyurl.com/yj7s8h4</a><br>
<br>
<br>
normal_startup:<br>
Min: 1.060017 -&gt; 0.991366: 6.92% faster<br>
Avg: 1.189612 -&gt; 1.170067: 1.67% faster<br>
Significant (t=2.002086, a=0.95)<br>
Stddev: 0.06942 -&gt; 0.06864: 1.13% smaller<br>
<br>
Mem max: 3252.000 -&gt; 4648.000: 30.03% larger<br>
Usage over time: <a href="http://tinyurl.com/ygo3bwt" target="_blank">http://tinyurl.com/ygo3bwt</a><br>
<br>
<br>
pickle:<br>
Min: 2.027566 -&gt; 1.948784: 4.04% faster<br>
Avg: 2.051633 -&gt; 2.043656: 0.39% faster<br>
Not significant<br>
Stddev: 0.03095 -&gt; 0.07348: 57.88% larger<br>
<br>
Mem max: 8544.000 -&gt; 7340.000: 16.40% smaller<br>
Usage over time: <a href="http://tinyurl.com/ykg9dn2" target="_blank">http://tinyurl.com/ykg9dn2</a><br>
<br>
<br>
pickle_dict:<br>
Min: 1.658693 -&gt; 1.656844: 0.11% faster<br>
Avg: 1.689483 -&gt; 1.698176: 0.51% slower<br>
Not significant<br>
Stddev: 0.16945 -&gt; 0.09403: 80.20% smaller<br>
<br>
Mem max: 6716.000 -&gt; 7636.000: 12.05% larger<br>
Usage over time: <a href="http://tinyurl.com/yjhyame" target="_blank">http://tinyurl.com/yjhyame</a><br>
<br>
<br>
pickle_list:<br>
Min: 0.919083 -&gt; 0.894758: 2.72% faster<br>
Avg: 0.956513 -&gt; 0.921314: 3.82% faster<br>
Significant (t=2.131237, a=0.95)<br>
Stddev: 0.12744 -&gt; 0.10506: 21.31% smaller<br>
<br>
Mem max: 6804.000 -&gt; 8792.000: 22.61% larger<br>
Usage over time: <a href="http://tinyurl.com/ylc3ezf" target="_blank">http://tinyurl.com/ylc3ezf</a><br>
<br>
<br>
pybench:<br>
Min: 58781 -&gt; 50836: 15.63% faster<br>
Avg: 60009 -&gt; 51788: 15.87% faster<br>
<br>
regex_compile:<br>
Min: 0.934131 -&gt; 0.862323: 8.33% faster<br>
Avg: 0.962159 -&gt; 0.884848: 8.74% faster<br>
Significant (t=13.587168, a=0.95)<br>
Stddev: 0.04685 -&gt; 0.03229: 45.11% smaller<br>
<br>
Mem max: 12584.000 -&gt; 12740.000: 1.22% larger<br>
Usage over time: <a href="http://tinyurl.com/yjngu8j" target="_blank">http://tinyurl.com/yjngu8j</a><br>
<br>
<br>
regex_effbot:<br>
Min: 0.130686 -&gt; 0.122483: 6.70% faster<br>
Avg: 0.143453 -&gt; 0.138078: 3.89% faster<br>
Not significant<br>
Stddev: 0.01864 -&gt; 0.03177: 41.32% larger<br>
<br>
Mem max: 7652.000 -&gt; 6660.000: 14.89% smaller<br>
Usage over time: <a href="http://tinyurl.com/ykcgntf" target="_blank">http://tinyurl.com/ykcgntf</a><br>
<br>
<br>
regex_v8:<br>
Min: 0.135130 -&gt; 0.150092: 9.97% slower<br>
Avg: 0.138027 -&gt; 0.177309: 22.15% slower<br>
Significant (t=-8.197595, a=0.95)<br>
Stddev: 0.00258 -&gt; 0.04785: 94.60% larger<br>
<br>
Mem max: 11124.000 -&gt; 12236.000: 9.09% larger<br>
Usage over time: <a href="http://tinyurl.com/ykb5vzu" target="_blank">http://tinyurl.com/ykb5vzu</a><br>
<br>
<br>
rietveld:<br>
Min: 0.848245 -&gt; 0.816473: 3.89% faster<br>
Avg: 1.033925 -&gt; 1.019889: 1.38% faster<br>
Not significant<br>
Stddev: 0.11242 -&gt; 0.13006: 13.56% larger<br>
<br>
Mem max: 23792.000 -&gt; 24548.000: 3.08% larger<br>
Usage over time: <a href="http://tinyurl.com/yhdvz5v" target="_blank">http://tinyurl.com/yhdvz5v</a><br>
<br>
<br>
slowpickle:<br>
Min: 0.876736 -&gt; 0.800203: 9.56% faster<br>
Avg: 0.932808 -&gt; 0.870577: 7.15% faster<br>
Significant (t=5.020426, a=0.95)<br>
Stddev: 0.05600 -&gt; 0.11059: 49.36% larger<br>
<br>
Mem max: 7200.000 -&gt; 7276.000: 1.04% larger<br>
Usage over time: <a href="http://tinyurl.com/ykt2brq" target="_blank">http://tinyurl.com/ykt2brq</a><br>
<br>
<br>
slowspitfire:<br>
Min: 1.029100 -&gt; 0.948458: 8.50% faster<br>
Avg: 1.062486 -&gt; 1.020777: 4.09% faster<br>
Significant (t=4.581669, a=0.95)<br>
Stddev: 0.05441 -&gt; 0.07298: 25.44% larger<br>
<br>
Mem max: 139792.000 -&gt; 129264.000: 8.14% smaller<br>
Usage over time: <a href="http://tinyurl.com/yh7vmlh" target="_blank">http://tinyurl.com/yh7vmlh</a><br>
<br>
<br>
slowunpickle:<br>
Min: 0.411744 -&gt; 0.356784: 15.40% faster<br>
Avg: 0.444638 -&gt; 0.393261: 13.06% faster<br>
Significant (t=7.009269, a=0.95)<br>
Stddev: 0.04147 -&gt; 0.06044: 31.38% larger<br>
<br>
Mem max: 7132.000 -&gt; 7848.000: 9.12% larger<br>
Usage over time: <a href="http://tinyurl.com/yfwvz3g" target="_blank">http://tinyurl.com/yfwvz3g</a><br>
<br>
<br>
startup_nosite:<br>
Min: 0.664456 -&gt; 0.598770: 10.97% faster<br>
Avg: 0.933034 -&gt; 0.761228: 22.57% faster<br>
Significant (t=20.660776, a=0.95)<br>
Stddev: 0.09645 -&gt; 0.06728: 43.37% smaller<br>
<br>
Mem max: 1940.000 -&gt; 1940.000: -0.00% smaller<br>
Usage over time: <a href="http://tinyurl.com/yzzxcmd" target="_blank">http://tinyurl.com/yzzxcmd</a><br>
<br>
<br>
threaded_count:<br>
Min: 0.220059 -&gt; 0.138708: 58.65% faster<br>
Avg: 0.232347 -&gt; 0.156120: 48.83% faster<br>
Significant (t=23.804797, a=0.95)<br>
Stddev: 0.01889 -&gt; 0.02586: 26.96% larger<br>
<br>
Mem max: 6460.000 -&gt; 7664.000: 15.71% larger<br>
Usage over time: <a href="http://tinyurl.com/yzm3awu" target="_blank">http://tinyurl.com/yzm3awu</a><br>
<br>
<br>
unpack_sequence:<br>
Min: 0.000129 -&gt; 0.000120: 7.57% faster<br>
Avg: 0.000218 -&gt; 0.000194: 12.14% faster<br>
Significant (t=3.946194, a=0.95)<br>
Stddev: 0.00139 -&gt; 0.00128: 8.13% smaller<br>
<br>
Mem max: 18948.000 -&gt; 19056.000: 0.57% larger<br>
Usage over time: <a href="http://tinyurl.com/yf8es3f" target="_blank">http://tinyurl.com/yf8es3f</a><br>
<br>
<br>
unpickle:<br>
Min: 1.191468 -&gt; 1.206198: 1.22% slower<br>
Avg: 1.248471 -&gt; 1.281957: 2.61% slower<br>
Significant (t=-2.658526, a=0.95)<br>
Stddev: 0.05513 -&gt; 0.11325: 51.32% larger<br>
<br>
Mem max: 7776.000 -&gt; 8676.000: 10.37% larger<br>
Usage over time: <a href="http://tinyurl.com/yz96gw2" target="_blank">http://tinyurl.com/yz96gw2</a><br>
<br>
<br>
unpickle_list:<br>
Min: 0.922200 -&gt; 0.861167: 7.09% faster<br>
Avg: 0.955964 -&gt; 0.976829: 2.14% slower<br>
Not significant<br>
Stddev: 0.04374 -&gt; 0.21061: 79.23% larger<br>
<br>
Mem max: 6820.000 -&gt; 8324.000: 18.07% larger<br>
Usage over time: <a href="http://tinyurl.com/yjbraxg" target="_blank">http://tinyurl.com/yjbraxg</a><br>
<br>
---<br>
<br>
The diff between the two trees is at<br>
<a href="http://dpaste.org/RpIv/" target="_blank">http://dpaste.org/RpIv/</a><br>
<br>
Best,<br>
<font color="#888888">Mart Sõmermaa<br>
_______________________________________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-dev" target="_blank">http://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="http://mail.python.org/mailman/options/python-dev/cesare.di.mauro%40gmail.com" target="_blank">http://mail.python.org/mailman/options/python-dev/cesare.di.mauro%40gmail.com</a><br>
</font></blockquote></div><br>