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.comments powered by Disqus