C replacement for Queue module

Peter Hansen peter at engcorp.com
Sat Oct 22 05:56:42 EDT 2005


Jonathan Ellis wrote:
> I'm working on an application that makes heavy use of Queue objects in
> a multithreaded environment.
> 
> By "heavy" I mean "millions of calls to put and get, constituting ~20%
> of the app's run time."  The profiler thinks that a significant amount
> of time is spent in this code -- not just a consumer waiting for a
> producer, but actual _empty, notify calls, etc.

I wonder if the use case would support hand-crafting an alternative. 
Queues appear fairly heavy weight (when you look at the implementation), 
and while they are very robust, if your own needs allow putting many 
items in at the same time, or getting many items out, for example, then 
perhaps you could come up with a much faster alternative based on the 
primitives (e.g. Event, Condition, etc) and perhaps some wrapped data 
structure other than the list that Queues use.

-Peter



More information about the Python-list mailing list