Speed-up for loops
Stefan Behnel
stefan_ml at behnel.de
Sun Sep 5 14:50:55 EDT 2010
BartC, 05.09.2010 19:09:
> I've thought about it (writing an independent interpreter). But I don't
> know enough of the language, and a lot of it I don't understand (eg.
> OOP). Besides, I think the language itself deliberately makes it
> difficult to get it up to speed. Some of the reasons might be the ones
> set down here, in Chapter 2:
>
> http://codespeak.net/svn/user/antocuni/phd/thesis/thesis.pdf
Second sentence of the abstract:
"""
However, all the existing implementations
prevent programmers from developing very efficient code.
"""
For an incorrect statement, that's a pretty bold one, even in the context
given by the abstract. The author is lucky not to be an English native
speaker, which explains some of the offensive wording in the intro.
Also, I'm impressed by an accepted Ph.D. thesis that comes along with just
a bit more than four pages of references, and that fails to reference
basically everything that the Python ecosystem provides for fast
computation. I wouldn't mind a "faster Python", but as long as Python
continues to be a language that allows you to very quickly get to the point
where you can benchmark and optimise your code, and as long as CPython then
makes it easy to do that, I won't be the one jumping up and down for a
small factor of "general" improvement, especially when it comes at the
price of switching to a completely different runtime. After all, it's
really hard to appreciate that a program can now wait 5% more often on I/O
than before. Larger performance improvements are usually due to algorithmic
changes (including data structure adaptations and caching), rarely due to
changes in the interpreter, especially when it's as old and well optimised
as CPython.
I think the CPython interpreter does a really good job in providing a
stable and predictable runtime environment and executing code in it, and
the CPython ecosystem does a really good job in providing tools that make
code run fast that needs to, be it due to efficient usage of I/O, CPU,
memory, or whatever.
I'm not trying to put down the achievements of the author of the cited
thesis, not at all. I'm sure the results are interesting for some people
and for some kinds of applications, just like the different Python
implementations are interesting for some people and some applications. But
an awful lot of existing apps won't benefit at all from a fast CLI based
Python implementation, simply because it doesn't have access (or at least
no efficient access) to many of the existing tools in the CPython ecosystem.
>> The simple fact is that there are far more important things for Python
>> developers to spend their time and effort on than optimizations like
>> this.
>
> I don't know, there's seem to be an awful lot of effort going into
> addressing exactly this issue (eg. PyPy, Pscyo, Unladen Swallow,
> Shedskin....)
Those are very different efforts that address very different issues.
> All those compilers that offer loop unrolling are therefore wasting
> their time...
Sometimes they do, yes.
Stefan
More information about the Python-list
mailing list