- This topic has 15 replies, 4 voices, and was last updated 15 years, 11 months ago by
Loyal Water.
-
AuthorPosts
-
newbie2009MemberHi,
I am evaluating myeclipse 7.0 to be used in our project. One aspect that majorily concerns me is the performance of the IDE for daily day-day operations.
First let me give a background on the volume of my workspace data. It has two ear projects and around 22 other projects (web + ejb). I have one Glassfish V2 server configured.
After using the IDE for about a week (with restarts quite often) these are my observations wrt performance.
1. Startup operation takes considerably long time (around 5 mins). This includes checking for updates that run once i get to see the perspective. Till this operation is completed the workspace is unusable.
2. Any right click operation takes time to react. For example if I right click on a project, the context menu appears say after 5-10secs.
3. At times the IDE just hangs when I do any operation. For example if I try to click on a file or project it goes to a hung state and returns to normal after a min or so.
4. Opening any file from the package explorer takes more than 15 secs. During that time any operation takes the IDE to a hung state.I am working on a machine with 2GB of RAM. All the above observations are with the server shut down.
Is it a common behaviour or am i missing some settings here. Any additional operations it does in the background due to which it takes time?
Please let me know what all needs to be done to make it operate faster as this will bring down the productivity to a greater extent.
Your help in this regard is greatly appreciated.Thanks
Giri
Loyal WaterMemberGiri,
Can you go to MyEclipse > Installation Summary > Installation Details and paste the information here for me.Also, can you please check if you have the memory arguments added in the eclipse.ini file.
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
newbie2009MemberMyEclipse > Installation Summary > Installation Details
—————————————————————-*** Date:
Thursday, February 26, 2009 8:44:30 AM EST** System properties:
OS=WindowsXP
OS version=5.1.0
Java version=1.5.0_11*** MyEclipse details:
MyEclipse Enterprise Workbench
Version: 7.0
Build id: 7.0-20081201*** Eclipse details:
MyEclipse Enterprise WorkbenchVersion: 7.0
Build id: 7.0-20081201Eclipse startup command=-os
win32
-ws
win32
-arch
x86
-showsplash
-launcher
C:\Program Files\Genuitec\MyEclipse 7.0\myeclipse.exe
-name
Myeclipse
–launcher.library
C:\Program Files\Genuitec\MyEclipse 7.0\../Common\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731\eclipse_1115.dll
-startup
C:\Program Files\Genuitec\MyEclipse 7.0\../Common\plugins\org.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar
-clean
-configuration
configuration
-vm
C:\Program Files\Genuitec\Common\binary\com.sun.java.jre.win32.x86_1.5.0.011\bin\client\jvm.dllmyeclipse.ini content:
————————--startup
../Common\plugins\org.eclipse.equinox.launcher_1.0.101.R34x_v20080819.jar
–launcher.library
../Common\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.0.101.R34x_v20080731
-clean
-configuration
configuration
-vm
C:\Program Files\Genuitec\Common\binary\com.sun.java.jre.win32.x86_1.5.0.011\bin\client\jvm.dll
-vmargs
-Xmx768M
-XX:MaxPermSize=192M
ernestzMemberFor some reason, it appears that a standard MyEclipse installation will always include the “-clean” switch in the myeclipse.ini … which will cause delays on startup.
Riyad KallaMemberGiri,
We have actually been doing profiling on our end looking for ways to optimize the workbench performance, but our sticking point has been accurately reproducing troublesome workspaces that users report problems with. Is your workspace something you could share with us privately for us to pull into our develoment environment and profile to see what is going on?
We have workspaces internally with 50+ web projects and so on that all behave fine, that’s been the troubling part for us, is finding the right combinations of inter-relationships and builders that cause the workbench to come to a crawl, so if you have such an environment, it would be hugely helpful for us to take a look at it.
ernestz,
Yes we started adding that back in 6.0 because of some plugin initialization bugs in the Eclipse platform that would sometimes cause the workbench to come up in a corrupted state… it drove us nuts for an entire release until we realized -clean fixed it, but it’s true, you can try removing -clean and that *will* drastically increase your startup time.
newbie2009MemberHi,
I may not be able to share my EAR application due to size and security restrictions. But can provide details on the volume of the workspace, so that it can be simulated. Please try.Total size of the workspace = 794MB (37460 files)
No of EAR projects = 2
No of Web projects = 4
No of EJB projects = 20
Java source files = 2762
JSP files = 3235
XML files = 867
Jar files = 226
HTML = 97
PDF = 219
GIF = 5859
JPG = 1180As I said earlier, the IDE has a “think time” before it reacts to our command. How do we get to know what is it doing in the background at that point of time.
I turned on the memory heap and it displays 105M of 185M. This is without the servers running.I checked the .log file and found the below entries. Not sure if they have to do something with this slowness.
.log Entries
————–!ENTRY com.genuitec.eclipse.core 1 0 2009-03-04 03:44:52.600
!MESSAGE Unable to locate .myeclipse.properties file!ENTRY org.eclipse.osgi 2 1 2009-03-04 03:44:54.615
!MESSAGE NLS unused message: action.moduleProjectWizardAction in: org.maven.ide.eclipse.messages!ENTRY org.eclipse.osgi 2 1 2009-03-04 03:44:54.615
!MESSAGE NLS unused message: artifactComponent.artifact in: org.maven.ide.eclipse.messages!ENTRY org.eclipse.osgi 2 1 2009-03-04 03:44:54.615
!MESSAGE NLS unused message: artifactComponent.artifactId in: org.maven.ide.eclipse.messages!ENTRY org.eclipse.osgi 2 1 2009-03-04 03:44:54.615
!MESSAGE NLS unused message: artifactComponent.description in: org.maven.ide.eclipse.messages!ENTRY org.eclipse.osgi 2 1 2009-03-04 03:44:54.615
!MESSAGE NLS unused message: artifactComponent.groupId in: org.maven.ide.eclipse.messages!ENTRY org.eclipse.osgi 2 1 2009-03-04 03:44:54.615
!MESSAGE NLS unused message: artifactComponent.name in: org.maven.ide.eclipse.messages!ENTRY org.eclipse.osgi 2 0 2009-03-04 03:45:20.676
!MESSAGE While loading class “com.genuitec.pulse2.common.http.PulseCommunications$2”, thread “Thread[Worker-1,5,main]” timed out waiting (5000ms) for thread “Thread[Worker-0,5,main]” to finish starting bundle “update@plugins/com.genuitec.pulse2.common.http_2.5.1.200812171120/ [142]”. To avoid deadlock, thread “Thread[Worker-1,5,main]” is proceeding but “com.genuitec.pulse2.common.http.PulseCommunications$2” may not be fully initialized.
!STACK 0
org.osgi.framework.BundleException: State change in progress for bundle “update@plugins/com.genuitec.pulse2.common.http_2.5.1.200812171120/” by thread “Worker-0”.!ENTRY org.maven.ide.eclipse 4 0 2009-03-04 03:46:24.920
!MESSAGE Unable to update index for central http://repo1.maven.org/maven2/
!STACK 1
org.eclipse.core.runtime.CoreException: Error updating index!SUBENTRY 1 org.maven.ide.eclipse 4 -1 2009-03-04 03:46:24.920
!MESSAGE Error updating index
!STACK 0
java.io.IOException: Transfer for nexus-maven-repository-index.zip failed; Error transferring file
<Stack>Contrastingly, removing -clean from the ini file did increase the startup time to 1.5 mins as against 45 seconds earlier.
Please help.
Thanks
Giri
Riyad KallaMemberGiri,
Out of curiosity, if you close your EAR projects, does the “think time” disappear? NOTE: Don’t close the module projects, just the top level EARs… the reason I ask is because we found a bug (fixed in the upcoming 7.1 release) where right-click context menu operations would generate web.xml validation HTTP traffic when the EAR projects were open — it was a really strange one, but we got it fixed.
newbie2009MemberI tried closing the EAR projects. Below are the observations –
1. Normal operations show a marginal improvement in the response times. Better than before. This includes expanding / closing other projects and opening files.
2. Clicking on the view tabs like Server or Console takes the IDE to a hung state. It reports an exception in the .log (as in observation #3).
3. Right clicking on the EAR projects (in closed or open state) takes the IDE to a hung state and the .log reports the below exception.!ENTRY com.genuitec.eclipse.j2eedt.core 1 0 2009-03-06 09:17:46.518
!MESSAGE Unable to read application.xml
!STACK 0
com.genuitec.eclipse.core.GenuitecCoreException: No route to host: connect
at com.genuitec.eclipse.core.util.JDOMUtil.parseFile(JDOMUtil.java:161)
at com.genuitec.eclipse.j2eedt.core.EARProject.loadDeploymentDescriptorData(Unknown Source)
at com.genuitec.eclipse.j2eedt.core.EARProject.initEARDeploymentDescriptorManager(Unknown Source)
at com.genuitec.eclipse.j2eedt.core.EARProject.<init>(Unknown Source)
at com.genuitec.eclipse.j2eedt.core.EARProject.<init>(Unknown Source)
at com.genuitec.eclipse.j2eedt.core.J2EECore.getEARProjectsList(Unknown Source)
at com.genuitec.eclipse.j2eedt.core.J2EECore.getEARProject(Unknown Source)
at com.genuitec.eclipse.j2eedt.core.J2EECore.getJ2EEProject(Unknown Source)
at com.genuitec.eclipse.ast.deploy.core.ui.action.DeploymentMgmtActionDelegate.selectionChanged(Unknown Source)
at org.eclipse.ui.internal.PluginAction.refreshEnablement(PluginAction.java:206)
at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:277)
at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:299)
at org.eclipse.ui.internal.AbstractSelectionService.fireSelection(AbstractSelectionService.java:156)
at org.eclipse.ui.internal.AbstractSelectionService$1.selectionChanged(AbstractSelectionService.java:62)
at org.eclipse.jface.viewers.Viewer$2.run(Viewer.java:162)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:880)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:48)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.Viewer.fireSelectionChanged(Viewer.java:160)
at org.eclipse.jface.viewers.StructuredViewer.updateSelection(StructuredViewer.java:2062)
at org.eclipse.jface.viewers.StructuredViewer.handleSelect(StructuredViewer.java:1138)
at org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(StructuredViewer.java:1168)
at org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(OpenStrategy.java:227)
at org.eclipse.jface.util.OpenStrategy.access$3(OpenStrategy.java:221)
at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:388)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3823)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3422)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Caused by: java.net.NoRouteToHostException: No route to host: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.oaklandsw.http.HttpConnection.openSocket(Unknown Source)
at com.oaklandsw.http.HttpConnection.normalOpen(Unknown Source)
at com.oaklandsw.http.HttpConnection.open(Unknown Source)
at com.oaklandsw.http.HttpURLConnection.setConnection(Unknown Source)
at com.oaklandsw.http.HttpURLConnectInternal.setConnection(Unknown Source)
at com.oaklandsw.http.HttpURLConnection.connect(Unknown Source)
at com.oaklandsw.http.HttpURLConnectInternal.processRequest(Unknown Source)
at com.oaklandsw.http.HttpURLConnectInternal.processRequestLoop(Unknown Source)
at com.oaklandsw.http.HttpURLConnectInternal.executeStart(Unknown Source)
at com.oaklandsw.http.HttpURLConnectInternal.execute(Unknown Source)
at com.oaklandsw.http.HttpURLConnection.getInputStream(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:810)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:789)
at com.genuitec.eclipse.core.util.JDOMUtil.parseFile(JDOMUtil.java:159)Is this available as a patch so that I can verify once with it applied?
Note: We have got the subcription key for MyEclipse usage already. This needs to be resolved asap, otherwise there will be a hit on the productivity.
Thanks
newbie2009MemberAny suggestions on the patch?
Riyad KallaMemberGiri,
The stack trace was really helpful — we actually had a patch go in for EAR projects that patched this in 7.1, but it looks like we missed a few other scenarios where there XML validation will create an HTTP request because of Xerces validation which is causing the sluggishness — the validation is done on the UI thread.
We’ll get this fixed shortly.
Riyad KallaMemberGiri,
After some investigation it looks like the patch for this went into the 7.1 release — have you updated to 7.1?
newbie2009MemberHow do I get this updated? Is it a patch I can apply over 7.0 or need to install 7.1 from scratch? Please point me to the download links.
In either case, I believe our subscription licenses hold good.Thanks
Giri
Riyad KallaMemberGiri,
Actually if you go to the MyEclipse menu and click “Manage MyEclipse Plug-ins”, the dashboard will come up and show you the 7.1 update, you can click “Install” next to it, then Apply and you should be all set!
newbie2009MemberIs there anyway I can download this patch and install it. I am behind a proxy and myeclipse does not connect to the internet properly to have it done through the “Manage MyEclipse Plugins” wizard.
Please note that I had an raised an issue earlier with respect to this and was not able to solve it. Then I had installed the SVN plugin manually.
Please let me know.
newbie2009MemberPlease respond.
-
AuthorPosts