Thanks for the replies. But I suspect that there is something very odd going on, and possibly preventable. There is just no way that any reasonably written code could take that long to compile JSP. I have checked that it is CPU bound. Maybe there is some O(n^4) algorithm in there, but I cannot imagine what.
Anthony > -----Original Message----- > From: Rashmi Rubdi [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 19, 2007 12:42 PM > To: Tomcat Users List > Subject: Re: Jasper compiler very slow > > Anthony, > > Please ignore my first reply on this thread, I misunderstood your > post, the reply I posted is irrelevant. > > Here's my new reply.... : > > On 4/18/07, Berglas, Anthony <[EMAIL PROTECTED]> wrote: > > Hello All, > > > > The compile time for my .jsp pages is extremely slow -- like 10 seconds > > on a modern PC to the first time any page is run. Painful during > > development. > > I agree that 10 seconds is too long, normally having JSP pages with a > lot of plain-text, causes them to be slow, also JSP page load time can > be attributed to non-optimized application layer code as well. > > Here are a few suggestions that have worked for me: > > 1) If the JSP pages have a lot of plain-text, move the plain text to a > persistent store - for example an XML file or database. > > 2) See if there's any code in the application layer that could be > optimized --- JDBC code (normally using Connection Pooling and > Prepared Statements, batch updates/inserts). > > 3) If the result set returned from the persistence layer is too large > try paging it into smaller chunks. > > After carefully making some of the above changes to my JSPs > (especially moving out the plain text to a persistent store), my JSP > page load within 1 second in the development environment on *first > access*. > > > > > I can compile a vast amount of Java code in 2 seconds. It is difficult > > to imagine what could be happening within Jasper to be that slow. > > > > I thought you meant the Jasper *pre-compiler* , and not the normal > run-time compiler. > > > I have been using the .tag facility to define custom tags fairly > > heavily. The pages are template driven, so that my top level JSPs > > contain little or no actual HTML. But there is not that much template > > code -- an XML parser should be able to read the lot in a few tens of > > milliseconds. > > I store all plain text in an XML file and I use XSLT to transform the > XML structure into an HTML file. Then I call the transformation from a > JSP page with JSTL's x:transform tag. This causes the page to load > very quickly. > > Most of the HTML is dynamically generated by the XSLT. > > Also, I store chunks of plain text with HTML formatting in an XML file > and transform it with XSLT to make the page load faster. > > > > > I suspect that there is something very specific that is causing the very > > bad performance. Have not started profiling. I'd call this a bug. > > > > Is the HTML being generated dynamically? or is there a lot of static > HTML and plain text? > > Also, it would help to optimize the database layer and app layer code. > > > Any ideas most welcome. > > > > [Pre-compiling the JSPs would not help -- it would make things worse. > > At least now I only need to wait for the recompile of the JSPs that I > > actually want to test in a run. Pre-compiling would require me to wait > > for all the JSPs to recompile -- many minutes. (One needs to blast the > > Jasper work area regularly otherwise changes to .tag files do not get > > reflected in .jsps)] > > > > Yeah, I agree - pre-compiling is not meant to be used during > application development anyway. > > Others are of course welcome to make their suggestions :-) > > -Rashmi > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]