Berin Loritsch wrote:
> The ExcaliburComponentManager is much slower, and will be the result of 
> most scalability
> issues in Cocoon.  The ContainerManager starts faster, and runs 
> faster--even though it
> does more work (with all the helper managers).  The only area where 
> ContainerManager is
> slower is on shutdown, although it is not that much slower.  There is 
> one more optimization
> that will assist on ContainerManager's init time (currently pools are 
> initialized in the
> constructor--that will be moved to the initialize() method).

That change made init time roughly 2.5 times as quick as the ECM.  Not much
change, but it adds up.

I think the best improvement has to do with the fact that each child component
has their own ComponentManager instance--which means that the instanceMap
used for each lookup() is unique to that component.  This enables less thread
contention as each Component is used.

> 
> 
>     [junit] Running 
> org.apache.avalon.excalibur.system.test.ContainerProfile
>     [junit] DEBUG   10140   [        ] (): added new LogTargetFactory of 
> type file
>     [junit] DEBUG   10140   [        ] (): added new LogTarget of id root
>     [junit] DEBUG   10140   [        ] (): added logger for category 
> test.test
>     [junit] INFO    10140   [test    ] (): Test Case: 
> ECM_ContainerManager_StartTime
>     [junit] INFO    10140   [test    ] ():      ECM time = 2494ms.
>     [junit] INFO    10140   [test    ] ():      ContainerManager time = 
> 1242ms.
>     [junit] INFO    10140   [test    ] ():   => ContainerManager is 2.0 
> X as fast as ExcaliburComponentManager on init.
>     [junit] INFO    10140   [test    ] ():   => 
> ExcaliburComponentManager is 0.49 X as fast as ContainerManager on init.
>     [junit] INFO    10140   [test    ] (): Test Case: Test Case: 
> ECM_ContainerManager_UseageTime
>     [junit] INFO    10140   [test    ] ():      
> AbstractContainer$ContainerComponentManager time = 2293ms. to use 50000 
> calls on 3 components.
>     [junit] INFO    10140   [test    ] ():      
> ExcaliburComponentManager time = 212596ms. to use 50000 calls on 3 
> components.
>     [junit] INFO    10140   [test    ] ():   => 
> AbstractContainer$ContainerComponentManager is 92.71 X as fast as 
> ExcaliburComponentManager.
>     [junit] INFO    10140   [test    ] ():   => 
> ExcaliburComponentManager is 0.01 X as fast as 
> AbstractContainer$ContainerComponentManager.
>     [junit] INFO    10140   [test    ] (): Test Case: 
> ECM_ContainerManager_KillTime
>     [junit] INFO    10140   [test    ] ():      ECM time = 10ms.
>     [junit] INFO    10140   [test    ] ():      ContainerManager time = 
> 551ms.
>     [junit] INFO    10140   [test    ] ():   => ContainerManager is 0.01 
> X as fast as ExcaliburComponentManager on dispose.
>     [junit] INFO    10140   [test    ] ():   => 
> ExcaliburComponentManager is 55.1 X as fast as ContainerManager on dispose.
>     [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 222.991 sec



-- 

"They that give up essential liberty to obtain a little temporary safety
  deserve neither liberty nor safety."
                 - Benjamin Franklin


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to