[Twisted-Python] profiling twisted

glyph at divmod.com glyph at divmod.com
Mon Jul 2 12:52:44 EDT 2007

On 11:14 am, exarkun at divmod.com wrote:
>On Mon, 02 Jul 2007 11:04:56 +0200, Markus Schiltknecht 
><markus at bluegap.ch> wrote:
>>Anyway, with very simple timing measures within the twisted server 
>>itself, I've figured out what was causing the delays: 
>>reactor.spawnProcess() takes more than a second.  I knew that fork() 
>>was expensive, but that expensive?
>This isn't normal.

Markus, can you instrument spawnProcess and figure out which *part* of 
it is taking so long?  Like exarkun says: this is not normal.  (I wonder 
if we are unwittingly calling some blocking API in there?  I don't think 
so, but...)
>>What I'm doing now feels very dirty: I'm calling 
>>reactor.spawnProcess() from a thread. (Yes, I'm taking care that only 
>>one thread can spawn a process at any time.) At least on my Linux Dev- 
>>Box, that seems to work - and resolves my issue. But... calling fork() 
>>from a thread???
>Er.  That's not supported.  The only Twisted API you can call from a 
>is reactor.callFromThread.

In other words, this may appear to work, but if you suddenly burst into 
flame unexpectedly, don't blame *us*.  And you probably will, 
eventually, if you keep doing that.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20070702/d5062185/attachment.htm 

More information about the Twisted-Python mailing list