[Python-Dev] Python is faster than C (original) (raw)
Armin Rigo arigo at tunes.org
Mon Apr 5 09:23:16 EDT 2004
- Previous message: [Python-Dev] Python is faster than C
- Next message: [Python-Dev] Python is faster than C
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello Paul,
On Mon, Apr 05, 2004 at 01:54:38PM +0100, Moore, Paul wrote:
I got the impression that Armin's point was that Psyco can optimise the integer case if the code is in Python, but not if it's in C.
Yes.
[Armin, how does Psyco + a Python sort compare against timsort on more general objects?]
Psyco suffers its current general problem: if you are using an operation that hasn't been explicitely recoded in Psyco (like tuple comparison) then the optimization wanishes. Sorting a list of (integer, complex_object), which is more common in practice, is 1.5x slower with Python+Psyco. I am sure that with 30 minutes of effort in the proper code I can make it faster than Timsort again. But Psyco has the same general problem everywhere.
I think that Psyco isn't ready for real uses yet because you just can't predict the resulting performance unless you know its internals. My hope with PyPy is that it will change that, by giving a way to generate all these missing Psyco parts automatically from the PyPy source, but that's still a long way. I won't even mention that Psyco works well only on 386. (It has got an almost-ready platform-independent back-end, but that's slower, so it is only a win in more extreme cases.)
Hmm. I'm torn. On the one hand, it's really cool that Python+Psyco can out-perform C (another argument against the knee-jerk "recode bits in C" reaction). But my gut feel is that not enough people use Psyco to make this a good answer yet. On the third hand, if we recode chunks of the stdlib in C, do we kill too many chances for Psyco to work its magic?
I think that (re)coding in C is very positive right now. And if we don't actually loose the original Python source (if there is one) then we don't really loose the ability to revert to it if at some point it is consistently better.
Essentially, I wanted to rant about the fact that some performance considerations are driving the language's evolution, and this is much harder to revert to if later the performance reasons vanish.
A bientot,
Armin.
- Previous message: [Python-Dev] Python is faster than C
- Next message: [Python-Dev] Python is faster than C
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]