excalibur-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leo Simons <m...@leosimons.com>
Subject Re: Optimizing SourceResolver.release()
Date Fri, 29 Jul 2005 07:02:20 GMT
On 28-07-2005 15:01, "Sylvain Wallez" <sylvain@apache.org> wrote:
> I'd like to propose a small change to the Source contract so that
> SourceResolver.release() is far more efficient.
> 
> Currently, releasing a Source requires to lookup the SourceFactory in
> the selector and calling release(Source) on that class. Now looking
> around, I found only _one_ implementation of SourceFactory that
> effectively does something useful in it's release() method, which is
> Cocoon's SitemapSourceFactory.
> 
> All other implementations do _nothing_, leading to a lot of useless
> lookups. Considering how much source-intensive Cocoon is, this may be
> significant.
> 
> To avoid this, I'd like to propose a small change to the
> SourceResolver.release() contract: if the Source implements Disposable,
> then it's dispose() method is called, and otherwise the factory is
> looked up as of today.
> 
> We then have to add empty dispose() methods to all source
> implementations to benefit from the performance improvement.
> 
> How does that sound?

Hmmmmmm...like a backward-incompatible change for both source and binaries.

I'd suggest getting some profile data showing this is significant rather
than working on a "hunch". And even then, I dislike having to break
interfaces for performance reasons. It seems to make sense to make lookup
less resource intensive instead :-)

Cheers,

Leo



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@excalibur.apache.org
For additional commands, e-mail: dev-help@excalibur.apache.org


Mime
View raw message