Thursday May 25, 2006 at 12:18
Subject: Python Need for Speed Sprint Report, Mid-week Progress Report
Keywords:
Python, Sprint
Posted by: Sean Reifschneider
Related entries:Python Need for Speed Sprint Report, first day. by Sean Reifschneider, Tuesday May 23, 2006 at 09:16
Python Need for Speed Sprint Report, second day. by Sean Reifschneider, Wednesday May 24, 2006 at 03:18
Python Need for Speed Sprint Report for Thursday. by Sean Reifschneider, Friday May 26, 2006 at 10:05
The "Need For Speed" Python Sprint is currently well in swing in
Reykjavik, Iceland. We're roughly half way done and there has been
significant progress. When we arrived, the Python 2.5 alpha 2 release was
roughly 10% slower than the previous stable release, measured using pybench.
A build of the current development version right now is showing that they
are now running the same speed. More speedups are expected shortly.
Richard Jones was suckered into re-writing the new exception handling
classes to get rid of the single largest pybench-identified performance
problem: exceptions are all now new-style classes. There are changes that
can be made that will make it perform much like the previous stable
release. This will almost certainly bring 2.5 performance well past 2.4.3.
Fredrik continues to improve performance of Unicode strings. A
benchmark Andrew and Fredrik worked on was originally running in 3.6
seconds. After the changes, they have the benchmark running in 0.9
seconds, with work still to be done. Once the Unicode changes are done,
these same changes will probably be moved into the byte string code.
Runar worked on allowing the int()/long() constructors to be given an
offset and an end, so that you can parse strings into ints/longs without
having to create a slice. It's not entirely likely that this is going to
go into Python core, probably a better interface would be using buffer
objects, with the ability to hold a start and end reference cheaply within
it.
On that topic, Martin was working on the new buffer object based on
the Java byte buffer. This almost certainly won't be in 2.5, but may be in
2.6. This is just continued work from what I reported yesterday.
More work and discussion and grumbling about benchmarking. Steve made
some changes relating to timing functions. Tim brought up a good point
about tests, you really want timing tests to run very short periods of
time. Long enough that the timer resolution isn't an issue, but short
enough that you don't have all sorts of other stuff possibly influencing
the test. With current clocks running very high precision, running a
timing test for a second is probably reasonable.
In the evening CCP took us out to have a Viking dinner. It was very
fun, there was a shark appetizer, lamb shank, and Viking entertainers.
The singing during dinner was enjoyable, all the locals were singing
along. The desert had fruit that I thought was blueberries, but tasted
kind of unlike blueberries. Apparently, they're Icelandic blueberries.
(Post Reply)
(Post Reply)