river-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter <j...@zeus.net.au>
Subject Re: PreferredClassProvider PreferredClassLoader - URI's or URL's?
Date Sun, 11 Dec 2011 05:52:01 GMT
Also in PreferredClassProvider, there's an Arrays.equals comparison made on two arrays containing
URL's.

It's no wonder the performance is bad, this will be causing multiple dns lookups.

I've altered PreferredClassProvider to use URI instead, URL is still used in one protected
method and in PreferredClassLoader, but the annotation string is parsed as URI, then converted
to URL, for Permissions and ClassLoading, however all comparisons are made using URI, to avoid
DNS Lookup.

I haven't tested it yet, I'm waiting for a thunderstorm to pass, before firing up the old
girl.

Will let you know the outcome, I haven't bothered about the global loader table lock at this
stage, this will perform much faster now, so may not block as much.

If needed, I've got ReferenceCollection utilities, which allow the use of weak or soft references
in ConcurrentMap, which will reduce remaining contention.

When it comes to ClassLoaders and classloading however you've got to be careful with concurrency.

Cheers,

Peter.

----- Original message -----
> Dennis,
>
> You utilise URIClassLoader which uses URI instead of URL, I've noticed
> that it's MPL, GPL or LGPL licensed so we can't distribute it with River.
>
> I've been looking into a subtle performance issue with
> PreferredClassProvider and PreferredClassLoader, an array of URL's are
> used as keys in a Map in PreferredClassProvider, I believe that this has
> a lot to do with the performance issues that Chris is experiencing with
> Reggie as posted on the user list.
>
> Any thoughts about making PreferredClassProvider and
> PreferredClassLoader use URI internally?
>
> Regards,
>
> Peter.


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message