> Useful was never the question. Perfomant, your mileage may vary.

Python tends to be *very* fast.  

Right up until you try to interact with a C/C++ library.  

Basically, any time Python executes native libraries (e.g. sqlite,
libssl, whatever) to do something, there's a big performance hit on
that one transaction.  I don't know why that performance hit is so
bad, but I just tend to write my code to minimize the number of
Python<->C transitions.  Large queries and large result sets, small
number of queries, etc.

Of course with any garbage collected language, you could have
situations where circular references or unnecessary left over
references cause processes to use way more memory than needed.  Or
people do foolish things like repeatedly search lists when they could
be using a dict, but that's just bad coding.


> I am working with project where everyone is love with Python, resulting 
> in top(1) showing a dozen python processes.
> 
> truss does not seem to provide many insights for them and I will try 
> adding the separate debug symbols.
> 
> Can you suggest any other strategies for inspecting a running Python 
> process?

Have you looked at the Python profilers?  This may require you to run
the process again under the profiler (can't attach to a running
process, AFAIK), but it's an option.

tim

_______________________________________________
PLUG mailing list
[email protected]
http://lists.pdxlinux.org/mailman/listinfo/plug

Reply via email to