You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Adriaan Joubert <ad...@gmail.com> on 2009/11/09 11:15:59 UTC

IoC container performance issues

Hi,

we hit some performance issues using the tapestry IoC. The problem is
that we have legacy apps where we do need to do a lot of registry
look-ups - takes a while to rewrite everything to have services
injected via constructors everywhere. In our particular case we have a
few hundred services and in one instance a static call was replaced
with a registry look-up and a call on the service. It turns out that a
registry look-up is rather slower than we expected.

A colleague has looked into this and says:

"We are having some performance issues with the getService() method in
the 'RegistryImpl' class. Looking at the source code it seems that there
are some linear list searches going on in there that could perhaps be
replaced by more efficient map lookups, if possible."

Has anybody looked into the performance of the IoC?

Thanks,

Adriaan

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: IoC container performance issues

Posted by Adriaan Joubert <ad...@gmail.com>.
We'll do that. Thanks!

Adriaan

2009/11/9 Howard Lewis Ship <hl...@gmail.com>:
> The container is organized for functionality, not performance, with
> service lookups because lookups normally occur once.
>
> Suggestion: create a "lookup" service that has getters for all the
> other keys services you want. Inject those other services into its
> implementation. Obtain it from the Registry. Store it in a global and
> use that for non-service code to gain access to IoC services.
>
> On Mon, Nov 9, 2009 at 2:15 AM, Adriaan Joubert <ad...@gmail.com> wrote:
>> Hi,
>>
>> we hit some performance issues using the tapestry IoC. The problem is
>> that we have legacy apps where we do need to do a lot of registry
>> look-ups - takes a while to rewrite everything to have services
>> injected via constructors everywhere. In our particular case we have a
>> few hundred services and in one instance a static call was replaced
>> with a registry look-up and a call on the service. It turns out that a
>> registry look-up is rather slower than we expected.
>>
>> A colleague has looked into this and says:
>>
>> "We are having some performance issues with the getService() method in
>> the 'RegistryImpl' class. Looking at the source code it seems that there
>> are some linear list searches going on in there that could perhaps be
>> replaced by more efficient map lookups, if possible."
>>
>> Has anybody looked into the performance of the IoC?
>>
>> Thanks,
>>
>> Adriaan
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator of Apache Tapestry
>
> The source for Tapestry training, mentoring and support. Contact me to
> learn how I can get you up and productive in Tapestry fast!
>
> (971) 678-5210
> http://howardlewisship.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: IoC container performance issues

Posted by Howard Lewis Ship <hl...@gmail.com>.
The container is organized for functionality, not performance, with
service lookups because lookups normally occur once.

Suggestion: create a "lookup" service that has getters for all the
other keys services you want. Inject those other services into its
implementation. Obtain it from the Registry. Store it in a global and
use that for non-service code to gain access to IoC services.

On Mon, Nov 9, 2009 at 2:15 AM, Adriaan Joubert <ad...@gmail.com> wrote:
> Hi,
>
> we hit some performance issues using the tapestry IoC. The problem is
> that we have legacy apps where we do need to do a lot of registry
> look-ups - takes a while to rewrite everything to have services
> injected via constructors everywhere. In our particular case we have a
> few hundred services and in one instance a static call was replaced
> with a registry look-up and a call on the service. It turns out that a
> registry look-up is rather slower than we expected.
>
> A colleague has looked into this and says:
>
> "We are having some performance issues with the getService() method in
> the 'RegistryImpl' class. Looking at the source code it seems that there
> are some linear list searches going on in there that could perhaps be
> replaced by more efficient map lookups, if possible."
>
> Has anybody looked into the performance of the IoC?
>
> Thanks,
>
> Adriaan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org