[rabbitmq-discuss] RabbitMQ management plugin memory usage in Chrome

Marek Majkowski majek04 at gmail.com
Fri Jan 28 11:58:27 GMT 2011


Don't listen to me. I was completely wrong. Simple .innerHTML fix
solves the problem. IE still leaks and is completely useless.

Marek

On Thu, Jan 27, 2011 at 08:59, Marek Majkowski <majek04 at gmail.com> wrote:
> On Wed, Jan 26, 2011 at 23:15, Simon MacMullen <simon at rabbitmq.com> wrote:
>> On 25/01/2011 9:14AM, Jon Rowland wrote:
>>>
>>> I don't have Firefox but I tried this in IE 8.0 and get the same
>>> behaviour (1GB usage after leaving running overnight).
>>
>> Hmm. Not sure IE counts as much evidence for the bug being in the plugin :)
>>
>> But seeing the same problem in two browsers is a concern.
>>
>> But I still have no idea how to debug this kind of problem.
>>
>> But I'll have a look anyway.
>>
>> But I'm not promising anything.
>
> Simon,
>
> There definitely is a memory leak. Actually, not a memory
> leak - it's just the document that is growing, the
> elements aren't leaked, they are referenced somewhere.
>
> I did some debugging and I have some results.
> Though, there is probably still much to be said.
>
> 1. in main.js we use innerHTML in one place, it's helpful to
>    zero the element out before that:
> http://javascript.crockford.com/memory/leak.html
>
> 2. I modified the purge() function above to unlink all childs,
>   and it seems to work a bit better. (ie: explicitly unlink all
>   elements of the tree)
>
> 3. The single biggest thing is IMO broken element caching
>    in jQuery. Check out jQuery.fragments. It's growing...
>    Removing this cache by hacking jQuery brought
>    wonderful results. (there is also jQuery.cache, but
>    I haven't played with that).
>    Basically, in one of the tests I noticed that Dom nodes
>    "document-fragment" were using the majority of memory.
>
> 4. In the queue view  there is a gc-cycle in the <form>
>    responsible for adding a queue. I'm not sure what
>    can be done about that.
>
> 5. In some other test I noticed that "slideUp/Down" and
>    "toggleUp/Down" methods were increasing memory
>    usage significantly, but that may be a false lead,
>    as it may have something to do with the 'document-fragment'
>    issue mentioned above.
>
> 6. For debugging I used 'sieve' for IE.
>      http://home.wanadoo.nl/jsrosman/
>    It's a simple tool but allows traversing the DOM and looking
>    at what contains what. It would be nice to find a similar
>    tool for chrome and firefox.
>
>
> Cheers,
>  Marek
>


More information about the rabbitmq-discuss mailing list