A simple *initial* solution could be to add a
addDeployers(List<Deployer>) method and only do the sort once.
WebServices adds like 29 deployers. I'm not saying this is bad, just
that there's no reason the sort can't be done for those 29 deployers
once and only once.
Maybe even create a bean: DeploymentList and each subsystem (EJB,
WebServicdes, etc.) could use that to deploy all their deployers.
Then, after this simple thing is done, you can talk the harder problem
of sorting.
Ales Justin wrote:
> This is the code that sorts it.
> *
>
http://anonsvn.jboss.org/repos/jbossas/projects/jboss-deployers/trunk/dep...
>
>
> Any suggestion how to fix it is welcome.
>
> Andrew Lee Rubinger wrote:
>> I have a test which confirms it.
>>
>> @Test
>> public void testAddLotsOfDeployers() throws Throwable
>> {
>> // Get the MainDeployer
>> MainDeployer mainDeployer = (MainDeployer)
>> getKernel().getController().getInstalledContext(NAME_MC_MAIN_DEPLOYER)
>> .getTarget();
>> TestCase.assertNotNull(MainDeployer.class.getName() + "
>> instance was not installed into MC", mainDeployer);
>>
>> // Add Deployers
>> for (int i = 0; i < 100; i++)
>> {
>> // Install a deployer
>> final Deployer deployer = new AbstractDeployer()
>> {
>>
>> @Override
>> public void deploy(final DeploymentUnit unit) throws
>> DeploymentException
>> {
>> //NOOP
>> }
>> };
>> final String deployerName =
>> deployer.getClass().getSimpleName() + i;
>> final BeanMetaDataBuilder bmdb = BeanMetaDataBuilder
>> .createBuilder(deployerName,
>> deployer.getClass().getName());
>> getKernel().getController().install(bmdb.getBeanMetaData(),
>> deployer);
>> }
>> }
>>
>> That takes 163s on my machine.
>>
>> S,
>> ALR
>>
>> On 12/17/2009 10:03 AM, Dimitris Andreadis wrote:
>>> 2 seconds doing Deployer sorting??? either a bug or a bad measurement.
>>>
>>> Bill Burke wrote:
>>>> I just did some profiling. 30% of boottime if you remove deploy/
>>>> directory (30% is 6-7 seconds out of 18) is because of Deployer
>>>> sorting. WebServices adds a TON of deployers, and a sort is happening
>>>> after each add of each deployer.
>>>>
>>>> Ales Justin wrote:
>>>>>> Ales told me he had a tool which draws out the dependencies of
all
>>>>>> beans in the AS. This needs some work, but I think it could be
used
>>>>>> in helping to (a) identify which beans need dependency
annotations
>>>>>> and (b) check whether all dependencies are correct (e.g. no
>>>>>> cycles)...
>>>>>
>>>>>
http://in.relation.to/Bloggers/MicrocontainerToolsGrapher
>>>>>
>>>>> MC 2.2.x will include some of the problems we've encountered and
>>>>> tackled:
>>>>> * ControllerState::equals
>>>>> * MDR's ScopeKey sorting
>>>>> * beans per class indexing
>>>>> * annotation plugin matching
>>>>> * ...
>>>>>
>>>>> After I include new MC 2.2.x in AS, I'll spend the time
identifying
>>>>> the potential lazy & on_demans beans + other tweaks.
>>>>>
>>>>>
>>>>
>>>
>>
>