« Return to Thread: Memory leak

Re: Memory leak

by Graeme Rocher-2 :: Rate this Message:

Reply to Author | View in Thread

On Fri, Sep 5, 2008 at 11:17 AM, Marc Palmer <marc@...> wrote:

>
> On 5 Sep 2008, at 09:02, Graeme Rocher wrote:
>
>> I believe the issue is that we override the default constructor to
>> perform data binding. The binding errors object is bound to either the
>> current thread or the current request
>>
>> Since these errors are scoped to the request they won't be GC'ed until
>> the request completes. You could regard this as a bug. One work around
>> may be do do:
>>
>>  for (int i = 0; i < 100000; i++) {
>>    def t = new Thing(name: "thing_${i}")
>>    t.errors = null
>>    Thread.sleep(50); // to allow time to watch things in the profiler
>>  }
>>
>> I'm not sure what a better solution is for now. Maybe we could use a
>> ReferenceQueue or something to check if its a candidate for GC'ing and
>> then automatically clear the errors... hmmm needs some thought
>>
>
> Can't we introduce some new notion where we can allow such GORM operations
> take effect "out of a request/thread context"?
>
> i.e:
>
> AnyDomainClass.batchOperation {
>   ... do anything in here and errors will be discarded automatically etc ...
> }
>
>

Yes that is a possibility

Cheers

> Marc
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>   http://xircles.codehaus.org/manage_email
>
>
>



--
Graeme Rocher
Grails Project Lead
G2One, Inc. Chief Technology Officer
http://www.g2one.com

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: Memory leak