Shane Caraveo wrote:
> Hello,
> I've been looking into performance and profiling, and noticed the 
> gc.collect that happens at the end of every request (in trac.web.main). 
>   On my osx dev box, this garbage collection is taking roughly 37% of 
> the request time on a simple template, and removing it shows the roughly 
> the same percent increase in requests/second (with ab).  I haven't 
> tested with more intensive templates (e.g. reports or timeline) where I 
> assume it would take less percent, however this is pretty significant.
>
> Removing it unfortunately introduces some issues with the database pool 
> and postgres (may be more related to how we're using the database).  It 
> also looks like, based on ticket 6614, that it will introduce a number 
> of other issues if it is removed.  I haven't fully digested 6614 yet, 
> it's pretty lengthy.
>
> I'm just wondering if anyone has any comments or thoughts about this.
>   

It's been discussed not so long ago on Trac-Dev, see 
http://groups.google.com/group/trac-dev/msg/9dcdaffccc74471c
As you can see there, I did some tests recently, but unfortunately not 
on Linux, where the benefits of the explicit gc.collect() were the more 
important, IIRC (not sure I ever digested #6614 either ;-) ).

It would be nice to test again on Linux. Maybe other approaches are 
possible, in order to lower the frequency of the collections. In all 
cases, the lesson learnt was to not necessarily trust Python to do the 
right thing if it's not told to do gc explicitly, in long running 
programs. Maybe this has changed with 2.6, though.

-- Christian


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Trac 
Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to