Re: JSPC Compilation - Slow
I posted about this a while ago, and worked with BEA tech support for a while on
it. The problem appears to be bad only if you have several TLDs _and_ several
jars in the system classpath. That is, the time that jspc takes seems to be proportional
to the number of TLDs _multiplied_by_ the number of jar files, multiplied by the
number of JSP files. I don't know why the number of jars matters (or whether it
has more to do with the total number of classes in those jars, or what), but it
seems to. The BEA engineers apparently feel that they're not going to be able
to speed it up, because instead they talked a lot about caching the in-memory
results of the slow TLD-processing code, so the server only lags the first time
it hits a given TLD, not on every JSP page over again.
We tried out an unofficial patch jar that makes the command-line version of weblogic.jspc
do this kind of caching, and it was in fact faster. They recommended the skipJavac
thing, because although that's a separate issue, it is of course faster to run
javac once on a set of (jspc-generated) java files than it is to run javac individually
for each of a set of java files. But they weren't willing to put the caching code
into the server itself, because apparently it'd be hard to get the server to discard
the cached TLDs at the right time when they're no longer valid (or something like
that). So there's no patch for WLS7 to fix this, and according to them there won't
ever be one. :-(
They said there would be some kind of a fix for this in 8.1, although it didn't
sound like they were going to get jspc up to speed. I think they're going to do
the in-server caching thing instead. Does anybody know if they succeeded? (Not
that I'm looking forward to dealing with whatever new idiosyncrasies 8.1 brings,
Rob Woollen <email@example.com> wrote:[color=blue]
>FWIW, it should be quite a bit faster in 8.1.
>One option you might want to try in 7.0 is specifying -skipJavac.
>You'll have to then manually run javac to compile all the generated
>..java files into the WEB-INF/classes directory, but I believe this is
>quite a bit faster than how 7.0's jspc does it.
>> This issue being raised several times in this newsgroup with no clear[/color]
>> weblogic.jspc runs extremely slow and it re-compiles the jsp with taglibs,[/color]
>> if they are already compiled already (and yes, I have specified the[/color]
>> One of the earlier post says to open a case with support. I was wondering[/color]
>> issue has been fixed in any of the WLS 7.0 service packs.
>> - John.[/color]