[Python-Dev] python optimization (original) (raw)
Brett Cannon bcannon at gmail.com
Thu Sep 15 20:13:02 CEST 2005
- Previous message: [Python-Dev] python optimization
- Next message: [Python-Dev] python optimization
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 9/15/05, Neal Becker <ndbecker2 at gmail.com> wrote:
I use cpython. I'm accustomed (from c++/gcc) to a style of coding that is highly readable, making the assumption that the compiler will do good things to optimize the code despite the style in which it's written. For example, I assume constants are removed from loops. In general, an entity is defined as close to the point of usage as possible.
I don't know to what extent these kind of optimizations are available to cpython. For example, are constant calculations removed from loops?
If you mean 2+3
, then yes. If you mean 2 + a
where is a loop
invariant, then no.
How about functions?
No optimization there.
Is there a significant cost to putting a function def inside a loop rather than outside?
If you put it in a loop then the function must be reconstructed every time through the loop. I have never benchmarked the cost of function construction but I doubt it's cheap.
The problem with all of these optimizations that you can do in more static languages is you get to assume most things do not change from underneath you. In Python, thanks to threading, access to frames, global namespaces of modules, etc., most things cannot be naively optimized without a lot of checking up front to make sure the optimization is valid every time it is run. If you want some gruesome detail, you can read my thesis (http://www.drifty.org/thesis.pdf) and the section on problems with introducing type inference into Python.
-Brett
- Previous message: [Python-Dev] python optimization
- Next message: [Python-Dev] python optimization
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]