[mod_python] Performance Problem

Graham Dumpleton grahamd at dscpl.com.au
Sat Aug 20 06:19:46 EDT 2005


Sebastjan Trepca wrote ..
> Ah, sorry about that question. As I understand it means that you
> basicaly can set the intepreter that gets copied to all processes that
> are spawned, else blank interpreter is used. If your globals doesn't
> change this would be quite useful then, da? But not quite for caching.

Sorry, still not quite right. Interpreters are not copied from anywhere.
Each interpreter is always effectively blank when first created. They
are created fresh direct within the child subprocess, they aren't copied
from the main Apache process. Upon being created an interpreter is
loaded with any builtin Python modules and then the mod_python
"_apache" and "apache" modules, but that is it. Only other modules
which might be loaded at startup are those specified using the
PythonImport directive. Subsequently for the specific request, the
module for a handler might then also be loaded etc.

There is nothing magic about differently named interpreters, whether
they be explicitly named or the default ones based on virtual host name,
they are just a way of maintaining some seperation between web
applications so they don't interfere with each other by clobbering
each others data and/or modules.

Graham


More information about the Mod_python mailing list