Skip to main content



      Home
Home » Newcomers » Newcomers » Eclipse 3.2.2 frequently "pausing"
Eclipse 3.2.2 frequently "pausing" [message #210842] Tue, 15 May 2007 18:27 Go to next message
Eclipse UserFriend
Hi Everyone,

I've just convinced my development team to accept a new eclipse
development setup, but they've hit a snag.

Every 10 minutes or so, their eclipse just "hangs" for about 10-15
seconds. It's apparently very busy doing something in the background,
judging by the 100% cpu and frequent garbage collection, but I can't
figure out what.

Can anyone tell me what this activity might be? Or how to stop it?
Otherwise I might be threatened by a mutiny :-)

The useful details are:

Eclipse 3.2.2, the latest build off the website. The runtime (and
compiler) are both JDK 1.5.0_06. The desktop is windows XP, 1GB RAM,
pentium 4, roughly 2.4GHz.

Auto-builds are switched OFF.

We do have the sysdeo tomcat plug-in (3.2) but I've since closed the
tomcat project and removed it from some workspaces with no effect. None
of the guys are currently using it anyway.

The standard workspace defines two user libraries. One ("Dev_Libs")
refers to about 20 utility libs (jar files) on the local file system, the
other user library ("Build_Classes") links to a large local jar file of
pre-built classes with a large local source attachment (~7500 classes).

The main java project refers to these two user libs but doesn't reference
any other stray jar files of its own. Some developers have in the order
of ~100 java files checked out locally in a single source directory (it's
actually linked to a directory on a shared drive, but there seems to be no
network traffic during the pauses so that might be a red herring)

My gut feeling is that some sort of automatic build is going on - if I do
a clean build we see the same behaviour for the same period of time. But
automatic builds are switched off.

So I'm stuck.

Thanks :-)
Re: Eclipse 3.2.2 frequently "pausing" [message #211120 is a reply to message #210842] Thu, 17 May 2007 14:47 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: news.pellaton.li

Hi

We encountered a very similar issue and we found out that the on-access
virus scanner was causing the interruptions. It helped to exclude some
of the most common file types present in an Eclipse workspace from the
virus scanning. (off course only the file types that can not possibly
catch virusses like *.xml, *.java, *.properties).

Another reason for sluggish Eclipses here were workspaces on not so
well performing network drives. However, the symptom of that issue was
a permanent slow speed of all Eclipse operations.

cu Michael
Re: Eclipse 3.2.2 frequently "pausing" [message #211128 is a reply to message #210842] Thu, 17 May 2007 15:42 Go to previous messageGo to next message
Eclipse UserFriend
Matthew Wilson wrote:
> Hi Everyone,
>
> I've just convinced my development team to accept a new eclipse
> development setup, but they've hit a snag.
>
> Every 10 minutes or so, their eclipse just "hangs" for about 10-15
> seconds. It's apparently very busy doing something in the background,
> judging by the 100% cpu and frequent garbage collection, but I can't
> figure out what.
> Can anyone tell me what this activity might be? Or how to stop it?
> Otherwise I might be threatened by a mutiny :-)
>
> The useful details are:
>
> Eclipse 3.2.2, the latest build off the website. The runtime (and
> compiler) are both JDK 1.5.0_06. The desktop is windows XP, 1GB RAM,
> pentium 4, roughly 2.4GHz.
>
> Auto-builds are switched OFF.
> We do have the sysdeo tomcat plug-in (3.2) but I've since closed the
> tomcat project and removed it from some workspaces with no effect. None
> of the guys are currently using it anyway.
>
> The standard workspace defines two user libraries. One ("Dev_Libs")
> refers to about 20 utility libs (jar files) on the local file system,
> the other user library ("Build_Classes") links to a large local jar file
> of pre-built classes with a large local source attachment (~7500 classes).
> The main java project refers to these two user libs but doesn't
> reference any other stray jar files of its own. Some developers have in
> the order of ~100 java files checked out locally in a single source
> directory (it's actually linked to a directory on a shared drive, but
> there seems to be no network traffic during the pauses so that might be
> a red herring)
>
> My gut feeling is that some sort of automatic build is going on - if I
> do a clean build we see the same behaviour for the same period of time.
> But automatic builds are switched off.
>
> So I'm stuck.
> Thanks :-)
>
>
>

This doesn't address the possibility of unwanted auto-builds, but you
might want to edit eclipse.ini and jack up the heap size. The default
allocation is only 40MB initial/256MB max. If it really is garbage
collection, that should reduce either the duration or frequency of
navel-gazing. Contrapositively, if the change has no effect, something
other than GC is going on.

/Paul
Re: Eclipse 3.2.2 frequently "pausing" [message #211153 is a reply to message #211128] Thu, 17 May 2007 17:27 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: news.pellaton.li

Hi

We had to tweak the memory settings for Eclipse too - especially
the heap and permanent generation spaces had to be increased.

The JConsole of the JDK6 proved to be a valuable tool for memory
issues tracking in RCP applications and Eclipse.

cu Michael
Re: Eclipse 3.2.2 frequently "pausing" [message #211429 is a reply to message #211153] Sun, 20 May 2007 23:20 Go to previous messageGo to next message
Eclipse UserFriend
Thanks guys,

It's definitely not a simple GC pause - numerous first-generation GCs
occur during the pause, while the CPU's pinned on 100% (and it's the
eclipse process that's flat-out, so I don't think it's a virus scanner
causing the problem). I haven't been able to jump quickly enough (it only
seems to happen to other people) to determined how much disk I/O is going
on.

I'm pretty sure there's some sort of internal eclipse process going on
that's keeping the machine busy , and it's not appearing as a "task"
either.

I've tried to get some thread dumps, though. I have managed to leap
quickly enough to get one, and the only two threads busy at the time were:


"Text Viewer Hover Presenter" daemon prio=2 tid=0x1942abb8 nid=0x3e8
runnable [0 x1803f000..0x1803fc68]
at java.util.zip.ZipFile.getNextEntry(Native Method)
at java.util.zip.ZipFile.access$700(ZipFile.java:35)
at java.util.zip.ZipFile$3.nextElement(ZipFile.java:421)
- locked <0x105fce18> (a java.util.zip.ZipFile)
at java.util.zip.ZipFile$3.nextElement(ZipFile.java:415)
at
org.eclipse.jdt.internal.core.JarPackageFragmentRoot.compute Children(JarPackageFragmentRoot.java:86)
at
org.eclipse.jdt.internal.core.PackageFragmentRoot.buildStruc ture(PackageFragmentRoot.java:170)
at
org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:229)
at
org.eclipse.jdt.internal.core.JarPackageFragment.generateInf os(JarPackageFragment.java:113)
at
org.eclipse.jdt.internal.core.Openable.openParent(Openable.j ava:420)
at
org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:218)
at
org.eclipse.jdt.internal.core.BinaryMember.generateInfos(Bin aryMember.java:47)
at
org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(Jav aElement.java:505)
at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:249)
at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:235)
at
org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement .java:153)
at
org.eclipse.jdt.internal.core.SelectionRequestor.acceptBinar yMethod(SelectionRequestor.java:84)
at
org.eclipse.jdt.internal.core.SelectionRequestor.acceptMetho d(SelectionRequestor.java:435)
at
org.eclipse.jdt.internal.codeassist.SelectionEngine.selectFr om(SelectionEngine.java:874)
at
org.eclipse.jdt.internal.codeassist.SelectionEngine.select(S electionEngine.java:683)
at
org.eclipse.jdt.internal.core.Openable.codeSelect(Openable.j ava:155)
at
org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(Com pilationUnit.java:326)
at
org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(Com pilationUnit.java:320)
at
org.eclipse.jdt.internal.ui.text.java.hover.AbstractJavaEdit orTextHover.getHoverInfo(AbstractJavaEditorTextHover.java:12 1)
at
org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.g etHoverInfo(BestMatchHover.java:102)
at
org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHo verProxy.getHoverInfo(JavaEditorTextHoverProxy.java:69)
at
org.eclipse.jface.text.TextViewerHoverManager$4.run(TextView erHoverManager.java:160)


"Worker-6" prio=6 tid=0x1797a118 nid=0xd80 runnable
[0x1869f000..0x1869fb68]
at
org.eclipse.jdt.internal.core.JarPackageFragmentRoot.compute Children(JarPackageFragmentRoot.java:100)
at
org.eclipse.jdt.internal.core.PackageFragmentRoot.buildStruc ture(PackageFragmentRoot.java:170)
at
org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:229)
at
org.eclipse.jdt.internal.core.JarPackageFragment.generateInf os(JarPackageFragment.java:113)
at
org.eclipse.jdt.internal.core.Openable.openParent(Openable.j ava:420)
at
org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:218)
at
org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(Jav aElement.java:505)
at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:249)
at
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:235)
at
org.eclipse.jdt.internal.core.BinaryType.getClassFileInfo(Bi naryType.java:224)
at
org.eclipse.jdt.internal.core.BinaryType.getChildren(BinaryT ype.java:171)
at
org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType( JavaElement.java:204)
at
org.eclipse.jdt.internal.core.BinaryType.getMethods(BinaryTy pe.java:452)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInType(MethodOverrideTester.java:184)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:152)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:166)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:166)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
at
org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethod(MethodOverrideTester.java:124)
at
org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverri deIndicators(OverrideIndicatorLabelDecorator.java:163)
at
org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAd ornmentFlags(OverrideIndicatorLabelDecorator.java:129)
at
org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorate( OverrideIndicatorLabelDecorator.java:261)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorDefin ition.decorate(LightweightDecoratorDefinition.java:259)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorManag er$LightweightRunnable.run(LightweightDecoratorManager.java: 71)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.core.runtime.Platform.run(Platform.java:843)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorManag er.decorate(LightweightDecoratorManager.java:336)
at
org.eclipse.ui.internal.decorators.LightweightDecoratorManag er.getDecorations(LightweightDecoratorManager.java:322)
at
org.eclipse.ui.internal.decorators.DecorationScheduler$1.ens ureResultCached(DecorationScheduler.java:338)
at
org.eclipse.ui.internal.decorators.DecorationScheduler$1.run (DecorationScheduler.java:308)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Re: Eclipse 3.2.2 frequently "pausing" [message #211446 is a reply to message #211429] Mon, 21 May 2007 04:15 Go to previous messageGo to next message
Eclipse UserFriend
Matthew Wilson wrote:

> Thanks guys,
>
> It's definitely not a simple GC pause - numerous first-generation GCs
> occur during the pause, while the CPU's pinned on 100% (and it's the
> eclipse process that's flat-out, so I don't think it's a virus scanner
> causing the problem). I haven't been able to jump quickly enough (it
> only seems to happen to other people) to determined how much disk I/O
> is going on.
> I'm pretty sure there's some sort of internal eclipse process going on
> that's keeping the machine busy , and it's not appearing as a "task"
> either.
>
> I've tried to get some thread dumps, though. I have managed to leap
> quickly enough to get one, and the only two threads busy at the time
> were:

Those are working and both in the background. Interesting would be
whether the main thread waits for something blocked by these.

Dani

>
>
> "Text Viewer Hover Presenter" daemon prio=2 tid=0x1942abb8 nid=0x3e8
> runnable [0 x1803f000..0x1803fc68]
> at java.util.zip.ZipFile.getNextEntry(Native Method)
> at java.util.zip.ZipFile.access$700(ZipFile.java:35)
> at java.util.zip.ZipFile$3.nextElement(ZipFile.java:421)
> - locked <0x105fce18> (a java.util.zip.ZipFile)
> at java.util.zip.ZipFile$3.nextElement(ZipFile.java:415)
> at
> org.eclipse.jdt.internal.core.JarPackageFragmentRoot.compute Children(JarPackageFragmentRoot.java:86)
>
> at
> org.eclipse.jdt.internal.core.PackageFragmentRoot.buildStruc ture(PackageFragmentRoot.java:170)
>
> at
> org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:229)
> at
> org.eclipse.jdt.internal.core.JarPackageFragment.generateInf os(JarPackageFragment.java:113)
>
> at
> org.eclipse.jdt.internal.core.Openable.openParent(Openable.j ava:420)
> at
> org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:218)
> at
> org.eclipse.jdt.internal.core.BinaryMember.generateInfos(Bin aryMember.java:47)
>
> at
> org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(Jav aElement.java:505)
>
> at
> org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:249)
>
> at
> org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:235)
>
> at
> org.eclipse.jdt.internal.core.JavaElement.exists(JavaElement .java:153)
> at
> org.eclipse.jdt.internal.core.SelectionRequestor.acceptBinar yMethod(SelectionRequestor.java:84)
>
> at
> org.eclipse.jdt.internal.core.SelectionRequestor.acceptMetho d(SelectionRequestor.java:435)
>
> at
> org.eclipse.jdt.internal.codeassist.SelectionEngine.selectFr om(SelectionEngine.java:874)
>
> at
> org.eclipse.jdt.internal.codeassist.SelectionEngine.select(S electionEngine.java:683)
>
> at
> org.eclipse.jdt.internal.core.Openable.codeSelect(Openable.j ava:155)
> at
> org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(Com pilationUnit.java:326)
>
> at
> org.eclipse.jdt.internal.core.CompilationUnit.codeSelect(Com pilationUnit.java:320)
>
> at
> org.eclipse.jdt.internal.ui.text.java.hover.AbstractJavaEdit orTextHover.getHoverInfo(AbstractJavaEditorTextHover.java:12 1)
>
> at
> org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.g etHoverInfo(BestMatchHover.java:102)
>
> at
> org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHo verProxy.getHoverInfo(JavaEditorTextHoverProxy.java:69)
>
> at
> org.eclipse.jface.text.TextViewerHoverManager$4.run(TextView erHoverManager.java:160)
>
>
>
> "Worker-6" prio=6 tid=0x1797a118 nid=0xd80 runnable
> [0x1869f000..0x1869fb68]
> at
> org.eclipse.jdt.internal.core.JarPackageFragmentRoot.compute Children(JarPackageFragmentRoot.java:100)
>
> at
> org.eclipse.jdt.internal.core.PackageFragmentRoot.buildStruc ture(PackageFragmentRoot.java:170)
>
> at
> org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:229)
> at
> org.eclipse.jdt.internal.core.JarPackageFragment.generateInf os(JarPackageFragment.java:113)
>
> at
> org.eclipse.jdt.internal.core.Openable.openParent(Openable.j ava:420)
> at
> org.eclipse.jdt.internal.core.Openable.generateInfos(Openabl e.java:218)
> at
> org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(Jav aElement.java:505)
>
> at
> org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:249)
>
> at
> org.eclipse.jdt.internal.core.JavaElement.getElementInfo(Jav aElement.java:235)
>
> at
> org.eclipse.jdt.internal.core.BinaryType.getClassFileInfo(Bi naryType.java:224)
>
> at
> org.eclipse.jdt.internal.core.BinaryType.getChildren(BinaryT ype.java:171)
> at
> org.eclipse.jdt.internal.core.JavaElement.getChildrenOfType( JavaElement.java:204)
>
> at
> org.eclipse.jdt.internal.core.BinaryType.getMethods(BinaryTy pe.java:452)
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInType(MethodOverrideTester.java:184)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:152)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:166)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:166)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethodInHierarchy(MethodOverrideTester.java:158)
>
> at
> org.eclipse.jdt.internal.corext.util.MethodOverrideTester.fi ndOverriddenMethod(MethodOverrideTester.java:124)
>
> at
> org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.getOverri deIndicators(OverrideIndicatorLabelDecorator.java:163)
>
> at
> org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.computeAd ornmentFlags(OverrideIndicatorLabelDecorator.java:129)
>
> at
> org.eclipse.jdt.ui.OverrideIndicatorLabelDecorator.decorate( OverrideIndicatorLabelDecorator.java:261)
>
> at
> org.eclipse.ui.internal.decorators.LightweightDecoratorDefin ition.decorate(LightweightDecoratorDefinition.java:259)
>
> at
> org.eclipse.ui.internal.decorators.LightweightDecoratorManag er$LightweightRunnable.run(LightweightDecoratorManager.java: 71)
>
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
> at org.eclipse.core.runtime.Platform.run(Platform.java:843)
> at
> org.eclipse.ui.internal.decorators.LightweightDecoratorManag er.decorate(LightweightDecoratorManager.java:336)
>
> at
> org.eclipse.ui.internal.decorators.LightweightDecoratorManag er.getDecorations(LightweightDecoratorManager.java:322)
>
> at
> org.eclipse.ui.internal.decorators.DecorationScheduler$1.ens ureResultCached(DecorationScheduler.java:338)
>
> at
> org.eclipse.ui.internal.decorators.DecorationScheduler$1.run (DecorationScheduler.java:308)
>
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
>
Re: Eclipse 3.2.2 frequently "pausing" [message #212279 is a reply to message #211446] Sun, 27 May 2007 21:41 Go to previous messageGo to next message
Eclipse UserFriend
Ok - I think I've made some progress with this.

We were able to reproduce a serious eclipse lock-up by hitting ctrl-o to
open the "quick outline" pop-up, then hitting ctrl-o again to see
inherited features. That was taking several minutes of 100% CPU to
respond. I got a couple of thread dumps and noticed that a lot of activity
was occuring within the method:

org.eclipse.jdt.internal.ui.text.JavaOutlineInformationContr ol.toggleShowInheritedMembers()

So I added a line to the method:

org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJar( )

That would print out some information about which jars were being opened.
What I discovered is that an ENORMOUS amount of time was spent repeatedly
interrogating a couple of big jar libraries - one was
development_classes.jar (our baseline build) and the other was rt.jar
(from the JDK).

When I unpacked development_classes.jar into a directory and used that as
a library instead of the jar file, the response times dropped
considerably. Always one to recognise a good thing when I see it, I also
tried the same trick on rt.jar and I found that the response times dropped
to zero (more or less). One of my developers has been using this setup
now for a couple of days and he says his frequent and horrific pauses have
disappeared.

So I think I'm out of the woods. But I also think that a real performance
problem within eclipse could be resolved if that
"JavaOutlineInformationControl" class (or whatever it's calling) used a
cleverer way of gathering class information from jar files. It seems to
do an awful lot of redundant work with zip files. For a few small libs it
might be fine as it is, but it doesn't appear to scale well.

I'm tempted to do it myself, but this is looking like a very busy
fortnight coming up. If I get time, I'll have a look.

Thanks everyone.

Matt.
Re: Eclipse 3.2.2 frequently "pausing" [message #212592 is a reply to message #212279] Tue, 29 May 2007 08:26 Go to previous message
Eclipse UserFriend
Matthew Wilson wrote:

> Ok - I think I've made some progress with this.
>
> We were able to reproduce a serious eclipse lock-up by hitting ctrl-o
> to open the "quick outline" pop-up, then hitting ctrl-o again to see
> inherited features. That was taking several minutes of 100% CPU to
> respond. I got a couple of thread dumps and noticed that a lot of
> activity was occuring within the method:
>
> org.eclipse.jdt.internal.ui.text.JavaOutlineInformationContr ol.toggleShowInheritedMembers()
>
>
> So I added a line to the method:
>
> org.eclipse.jdt.internal.core.JarPackageFragmentRoot.getJar( )
> That would print out some information about which jars were being
> opened. What I discovered is that an ENORMOUS amount of time was
> spent repeatedly interrogating a couple of big jar libraries - one was
> development_classes.jar (our baseline build) and the other was rt.jar
> (from the JDK).
>
> When I unpacked development_classes.jar into a directory and used that
> as a library instead of the jar file, the response times dropped
> considerably. Always one to recognise a good thing when I see it, I
> also tried the same trick on rt.jar and I found that the response
> times dropped to zero (more or less). One of my developers has been
> using this setup now for a couple of days and he says his frequent and
> horrific pauses have disappeared.
>
> So I think I'm out of the woods. But I also think that a real
> performance problem within eclipse could be resolved if that
> "JavaOutlineInformationControl" class (or whatever it's calling) used
> a cleverer way of gathering class information from jar files. It
> seems to do an awful lot of redundant work with zip files. For a few
> small libs it might be fine as it is, but it doesn't appear to scale
> well.

The JavaOutlineInformationControl uses the Java Model. Which in this
case seems to do more work than needed. Please file a bug report with
your findings. Also, can you check whether the same problem appears with
3.3 RC2?

Dani

>
> I'm tempted to do it myself, but this is looking like a very busy
> fortnight coming up. If I get time, I'll have a look.
>
> Thanks everyone.
>
> Matt.
>
>
Previous Topic:Following 3.3 development via update manager
Next Topic:Installed 3.3, lost most JSP features
Goto Forum:
  


Current Time: Tue Jul 22 13:59:22 EDT 2025

Powered by FUDForum. Page generated in 0.11894 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top