Sylvain Wallez wrote: > > The performance problem is that among all implementations of Source that > I know of (URLSource, FileSource, SlideSource, BlobSource, XMLDBSource, > SitemapSource and CVSSource), only one actually needs to be disposed > (SitemapSource). > > So having a isSelectable()-select()-release() cycle to call a > factory.release() that does nothing most of the time seems CPU > waste to me. > > Now I agree that theoretically releasing is the factory's job. So, in > order to lower my performance fears, what about removing the > isSelectable() call in SourceResolverImpl.release() ? It would remove an > unnecessary search in the ServiceSelector HashMaps, considering also > that the select() that follows this isSelectable() is surrounded by a > try/catch. > Wow, entering twilight zone...believe it or not, I just thought of this yesterday evening when I tried to think about some general performance improvements. Actually, I wasn't sure about it, because if we are honest, it's a hack. And throwing/catching exceptions is also a little bit time consuming. But as a (better?) solution I would like to make a factory for the URLSource as well - so all sources are handled by a factory and the select() call will always return a factory - and this will avoid the isSelectable() call. What do you think about this?
Ah, btw you're right that the Source object should return a Collection instead of an Iterator for the children - I will fix that, too, asap. Regards Carsten Carsten Ziegeler Open Source Group, S&N AG --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]