- This topic has 6 replies, 2 voices, and was last updated 19 years, 9 months ago by Riyad Kalla.
-
AuthorPosts
-
colinmacleodMemberI’m evaluating MyEclipse for the first time, and running it against a webapp with 169 JSP pages it it. I especially like the XML and JSP editors (I was using JEdit before), but I’m finding the JSP validation is slow – about 16 seconds per page, so it would take about 45 minutes to validate the whole app.
It’s a shame because I find the validation enormously useful.
This webapp depends on a number of other eclipse projects – don’t know if that is significant. It uses Struts, JSTL and Hibernate. There are no EJBs but I’m using XDoclet for the Hibernate generation, though that is in a separate maven subproject.
Platform: SuSE Linux 9.2 (kernel 2.6.8-24.11), Eclipse 3.0.1 (build 200409161125), MyEclipse 3.8.4 +QF2 (build 200502031200). I’ve tried Sun JDK 1.4.2_06 and 1.5.0_01. My vmargs are -Xms512M -Xmx512M. The hadware is an AMD Athlon XP with 1.5G RAM.
Is it normal that it is so slow and, if not, what can I do to narrow down the problem?
So far I’ve tried using the JSTL and Struts from MyEclipse, and building the project back up from scratch but without success.
Any advice or tips will bring my undying thanks.
Riyad KallaMemberbut I’m finding the JSP validation is slow – about 16 seconds per page
The validation should typically be between 1-2 seconds per page. Obviously on beefier machines and slower machines it will vary… to unless you are on a P3 600mhz machine, I think something is going on…
Is it normal that it is so slow and, if not, what can I do to narrow down the problem?
First pull up a process monitor (KMon I think in SuSE) then have it side by side with Eclipse. Change your JSP page and hit Save, does the process peg for the entire 16 seconds? Also down in the right hand corner where the minature progress bar is displayed, do you see it during the entire 16 seconds? Wht does the ‘progress’ view show?
Also open up your Eclipse log file (workspace dir\.metadata\.log) and scroll to the bottom, then edit/save a file, and then reload the log file, see if an exception was written out… maybe something is going wrong.
So far I’ve tried using the JSTL and Struts from MyEclipse
No need to, these aren’t special libraries just the vanilla ones you get from Jakarta and Sun’s site. So you can go back to using your own libs if you prefer (sometimes IDEs have special instrumented libs they use, we don’t, they are straight defaults).
colinmacleodMemberHi Riyad,
Thanks a lot for the fast response – that’s super.
First pull up a process monitor (KMon I think in SuSE) then have it side by side with Eclipse. Change your JSP page and hit Save, does the process peg for the entire 16 seconds? Also down in the right hand corner where the minature progress bar is displayed, do you see it during the entire 16 seconds? Wht does the ‘progress’ view show?
When I select “Right Mouse on Project name”->MyEclipse->”Run Validation”, I get a Progress Information dialog. It’s here I see a 16s time for each JSP. The javac process flashes up in the KDE System Monitor for just a short time, though my java process is using a serious amount of memory (800M).
Also open up your Eclipse log file (workspace dir\.metadata\.log) and scroll to the bottom, then edit/save a file, and then reload the log file, see if an exception was written out… maybe something is going wrong.
Ah, this is getting me somewhere
!ENTRY com.genuitec.eclipse.wdt.jsp.debug 1 1 Mar 05, 2005 19:28:42.339 !MESSAGE 05-Mar-2005 19:28:42 com.genuitec.eclipse.wdt.jsp.jasper.compiler.Compiler ā SEVERE: Javac exception Compile failed; see the compiler error output for details. at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:938) at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:758) at com.genuitec.eclipse.wdt.jsp.jasper.compiler.Compiler.ā(Unknown Source) at com.genuitec.eclipse.wdt.jsp.jasper.compiler.Compiler.compile(Unknown Source) at com.genuitec.eclipse.wdt.jsp.jasper.compiler.Compiler.compile(Unknown Source) at com.genuitec.eclipse.wdt.jsp.jasper.driver.MyEclipseJspC.ā(Unknown Source) at com.genuitec.eclipse.wdt.jsp.jasper.driver.MyEclipseJspC.parse(Unknown Source) at com.genuitec.eclipse.wdt.jsp.validation.JSPValidator.validate(Unknown Source) at com.genuitec.eclipse.wdt.jsp.validation.ValidateAction$1.run(Unknown Source) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1693) at com.genuitec.eclipse.wdt.jsp.validation.ValidateAction.validate(Unknown Source) at com.genuitec.eclipse.wdt.jsp.validation.ValidateAction.run(Unknown Source) at com.genuitec.eclipse.wdt.jsp.validation.Validator.validate(Unknown Source) at com.genuitec.eclipse.wdt.jsp.validation.Validator.validateIfNeeded(Unknown Source) at com.genuitec.eclipse.wdt.jsp.validation.Validator.validate(Unknown Source) at com.ibm.etools.validation.ValidatorLauncher.start(Unknown Source) at com.ibm.etools.validate.ValidationOperation.launchValidator(Unknown Source) at com.ibm.etools.validate.ValidationOperation.internalValidate(Unknown Source) at com.ibm.etools.validate.ValidationOperation.validate(Unknown Source) at com.ibm.etools.validate.ValidationOperation.run(Unknown Source) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1693) at com.ibm.etools.validate.ui.ValidationMenuAction.checkProjectConfiguration(Unknown Source) at com.ibm.etools.validate.ui.ValidationMenuAction.performValidation(Unknown Source) at com.ibm.etools.validate.ui.ValidationMenuAction.validate(Unknown Source) at com.ibm.etools.validate.ui.ValidationMenuAction$2.run(Unknown Source) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1673) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1693) at com.ibm.etools.validate.ui.plugin.RunnableWithProgressWrapper.run(Unknown Source) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:101) 05-Mar-2005 19:28:42 com.genuitec.eclipse.wdt.jsp.jasper.compiler.Compiler ā SEVERE: Env: Compile: javaFileName=/tmp/myeclipse-jspcc//org/apache/jsp/testWeb/calendar/minutesForMeeting_jsp.java classpath={.....long line....} cp=/usr/local/eclipse/startup.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/rt.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/sunrsasign.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/jsse.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/jce.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/charsets.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/ext/dnsns.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/ext/ldapsec.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/ext/localedata.jar cp=/usr/java/j2sdk1.4.2_06/jre/lib/ext/sunjce_provider.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/activation.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/javax.servlet.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/javax.servlet.jsp.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/jboss-j2ee.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/jboss-jaxrpc.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/jboss-jsr77.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/jboss-saaj.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/mail.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/namespace.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_3.8.4/data/libraryset/1.4/xml-apis.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/activation.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/antlr-2.7.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/asm-1.4.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/cglib-2.0.1.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/commons-beanutils-1.6.1.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/commons-collections-3.0.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/commons-digester-1.5.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/commons-fileupload-1.0.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/commons-logging-1.0.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/commons-validator-1.0.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/dom4j-1.5-rc1.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/dom4j-1.5.1.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/ehcache-0.7.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/hibernate-2.1.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/imap.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jaxen-1.0-FCS-full.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jboss-common-client-3.2.3.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jboss-j2ee-3.2.3.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jcom-2.2.4.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jstl-1.0.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jtidy-4aug2000r7-dev.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/log4j-1.2.8.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/mailapi.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/odmg-3.0.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/oscache-1.7.5.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/picocontainer-1.1.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/postgresql-7.4.1-jdbc3.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/saxpath-1.0-FCS.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/smtp.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/standard-1.0.4.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/struts-1.2.4.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/xercesImpl-2.6.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/xml-apis-2.0.2.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/jstl.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/lib/standard.jar cp=/home/cvslocal/ivatagroupware/testWeb/src/web/WEB-INF/classes cp=/home/cvslocal/ivatamasks/mask/target/classes cp=/home/cvslocal/ivatamasks/util/target/classes cp=/home/cvslocal/ivatamasks/web/target/classes cp=/home/cvslocal/ivatamasks/webtheme/target/classes cp=/home/cvslocal/ivatamasks-thirdparty/imageinfo/target/classes cp=/home/cvslocal/ivatagroupware/addressbook/target/classes cp=/home/cvslocal/ivatagroupware/calendar/target/classes cp=/home/cvslocal/ivatagroupware/core/target/classes cp=/home/cvslocal/ivatagroupware/htmlparser/target/classes cp=/home/cvslocal/ivatamasks/build/target/classes cp=/home/cvslocal/ivatamasks/demo/target/classes cp=/home/cvslocal/ivatagroupware/library/target/classes cp=/home/cvslocal/ivatagroupware/mask/target/classes cp=/home/cvslocal/ivatagroupware/search/target/classes cp=/home/cvslocal/ivatagroupware/security/target/classes cp=/home/cvslocal/ivatagroupware/webmail/target/classes cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.wdt.jsp.debug_3.8.4/lib/jasper-runtime.jar cp=/usr/local/MyEclipse/eclipse/plugins/com.genuitec.eclipse.wdt.jsp.debug_3.8.4/lib/jsp-api.jar work dir=/tmp/myeclipse-jspcc extension dir=/usr/java/j2sdk1.4.2_06/jre/lib/ext srcDir=/tmp/myeclipse-jspcc compiler=extJavac include=org/apache/jsp/testWeb/calendar/minutesForMeeting_jsp.java
Now I guess the next question is where would I find the compiler error output?
No need to, these aren’t special libraries just the vanilla ones you get from Jakarta and Sun’s site. So you can go back to using your own libs if you prefer (sometimes IDEs have special instrumented libs they use, we don’t, they are straight defaults).
That’s great to know – thanks. Really appreciate your swift response.
Cheers,
Colin
Riyad KallaMemberWhen I select “Right Mouse on Project name”->MyEclipse->”Run Validation”, I get a Progress Information dialog. It’s here I see a 16s time for each JSP.
Ok but when you change a file and hit CTRL-S and it revalidates then, that is fast?
It’s here I see a 16s time for each JSP.
Just to clarify, you mean about every 16s you see the name that is being validated change to a new JSP name? What about validation for your other artifacts? XML files? DTDs? Schemas? Etc, is that fast?
Are you behind a HTTP proxy?
Now I guess the next question is where would I find the compiler error output?
It should all be there in the log file… out of curiosity, if you open up a shell and type “java -version”, what is your output?
Really appreciate your swift response.
No problem, I hope we can get this figured out.
P.S.> As we are testing it is safe to erase your .log file to keep it trimmed down and easy to follow. Eclipse will just create a new one if any new errors come up. This helps us avoid getting distracted by old exceptions not related to the problem at hand.
colinmacleodMemberFirst off, sorry it took me so long to respond – I waited for and didn’t get an email notification for some reason.
Ok but when you change a file and hit CTRL-S and it revalidates then, that is fast?
Not really. I get “Building workspace 94%” in the eclipse status bar and then it takes a good 14 – 16 seconds to complete.
Just to clarify, you mean about every 16s you see the name that is being validated change to a new JSP name? What about validation for your other artifacts? XML files? DTDs? Schemas? Etc, is that fast?
Yes, 16s for each JSP name to change. (I timed it for 5 names to change, and then divided by 5 to get 16s).
I don’t seem to have a problem with XML files, but I only have a few of them. If I change a small XML file and save it, it is instantaneous. If I change a larger tld file, it pauses at the 94% mark, but only for a few seconds.
Are you behind a HTTP proxy?
No, I have a direct connection. It’s a shared broadband connection, so the speed varies but is normally quite fast.
As we are testing it is safe to erase your .log file to keep it trimmed down and easy to follow. Eclipse will just create a new one if any new errors come up. This helps us avoid getting distracted by old exceptions not related to the problem at hand.
Ok. Have done this now. When I save a JSP file, it waits for about 14 – 16 seconds (depending on the file), and then finishes. No new .log file is generated.
colinmacleodMemberI think I’ve narrowed this down to a problem in my BIOS setttings. Just did a BIOS flash upgrade, and fixed the CPU settings and MyEclipse rocks now. The difference is incredible – it’s great.
Sorry to have wasted your time, but thanks again for the advice and quick response.
Riyad KallaMemberColin I am really relieved to hear that it is fixed now and that you are able to be more productive with the tool. Nice job running down the BIOS update, I sure wouldn’t have thought of that!
-
AuthorPosts