cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: Re: [IMP] Performance Killer and Memory leak
Date Mon, 03 Nov 2003 15:09:38 GMT

> wrote:

>> The lookup/release add/remove the component to/from an ArrayList. If you
>> have a lot of Components which lookup other Components inside the
>> method the List can be really big. If you have a lot of SubSitemaps
>> use many InputModules it grows and grows ..... and the performance goes
>> down and down ...

> First: ArrayList is only helpful for small lists.  A better list type for
> this case would be the LinkedList.

Ok, but this doesn't solve the performance problem if the list is more than
300 items long. Because if CM.release is called the remove from the list is
a sequential search. And this happen for *each* release.
My proposal is to completely remove this List (ComponentManagerProxy).

>> Ok, but this is not the Killer. The Killer are Composable
>> RequestLifecycleComponents, because they are usually lookuped from other
>> Components using the ComponentManagerProxy but are released by the
>> CocoonComponentManager which doesn't use the ComponentManagerProxy. What
>> happen is, that they are not removed from the List, so the List explode.

> This is a bug in COcoon's extension of the ECM project.  IT is something
> that needs to be fixed.

If we remove the ComponentManagerProxy this problem is solved.

> Cocoon is welcome to update the ECM code in Excalibur if necessary.

View raw message