Community
Participate
Working Groups
I am having problems with very slow performance when switching between perspectives. I was trying to switch from the debug perspective to the Java perspective and the switch took over 5 min. I am running a dual process 933Mhz system with 1GB of memory and 512MB allocated to Eclipse. I am running Windows XP with service pack 1. I am running Sun JDK 1.4.1_02. I am running Eclipse build I20030917. A full thread dump follows. JspUIPlugin: startup java.lang.OutOfMemoryError java.lang.OutOfMemoryError Unhandled exception caught in event loop. Reason: java.lang.OutOfMemoryError Failed to execute runnable (java.lang.OutOfMemoryError) *** Stack trace of contained exception *** Reason: java.lang.OutOfMemoryError Full thread dump Java HotSpot(TM) Client VM (1.4.1_02-b06 mixed mode): "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0BEC9668 nid=0x644 in Object.wait() [d3af000..d3afd8c] at java.lang.Object.wait(Native Method) - waiting on <05921C90> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <05921C90> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AFE8D70 nid=0xfe4 in Object.wait() [d34f000..d34fd8c] at java.lang.Object.wait(Native Method) - waiting on <058DB4A8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <058DB4A8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0F99E0 nid=0x818 in Object.wait() [d2ef000..d2efd8c] at java.lang.Object.wait(Native Method) - waiting on <05891A58> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <05891A58> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0E2828 nid=0x754 runnable [d28f000..d28fd8c] at org.eclipse.jdt.internal.compiler.codegen.CharArrayCache.put (CharArrayCache.java:100) at org.eclipse.jdt.internal.compiler.codegen.ConstantPool.literalIndex (ConstantPool.java:711) at org.eclipse.jdt.internal.compiler.codegen.ConstantPool.literalIndex (ConstantPool.java:996) at org.eclipse.jdt.internal.compiler.codegen.CodeStream.invokestatic (CodeStream.java:3090) at org.eclipse.jdt.internal.compiler.ast.MessageSend.generateCode (MessageSend.java:81) at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.generateCode (ReturnStatement.java:117) at org.eclipse.jdt.internal.compiler.ast.SwitchStatement.generateCode (SwitchStatement.java:188) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode (AbstractMethodDeclaration.java:210) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.generateCode (AbstractMethodDeclaration.java:156) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode (TypeDeclaration.java:477) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.generateCode (TypeDeclaration.java:531) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.generateCode (CompilationUnitDeclaration.java:176) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:577) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:610) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:168) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:205) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation (ReconcileWorkingCopyOperation.java:62) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:366) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:705) at org.eclipse.jdt.internal.core.JavaElement.runOperation (JavaElement.java:523) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1031) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1007) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:72) - locked <05434B10> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:99) at org.eclipse.jface.text.reconciler.MonoReconciler.process (MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B21F4D8 nid=0xda8 in Object.wait() [d22f000..d22fd8c] at java.lang.Object.wait(Native Method) - waiting on <051ED0F0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <051ED0F0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0D0D40 nid=0xa9c in Object.wait() [d1cf000..d1cfd8c] at java.lang.Object.wait(Native Method) - waiting on <0506F380> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <0506F380> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0CF510 nid=0xb78 runnable [d16f000..d16fd8c] at java.lang.Object.wait(Native Method) - waiting on <04FA6DC0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04FA6DC0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0CD210 nid=0x604 runnable [d10f000..d10fd8c] at java.lang.Object.wait(Native Method) - waiting on <04FFB030> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04FFB030> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B072970 nid=0xecc in Object.wait() [d0af000..d0afd8c] at java.lang.Object.wait(Native Method) - waiting on <04F670F0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04F670F0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B070490 nid=0x110 suspended [d04f000..d04fd8c] at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextToken (Scanner.java:834) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5611) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5785) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:158) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:278) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:128) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUn it(SourceTypeConverter.java:77) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept (CompilationUnitProblemFinder.java:98) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType (LookupEnvironment.java:106) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage (PackageBinding.java:174) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage (Scope.java:1353) at org.eclipse.jdt.internal.compiler.lookup.Scope.getBinding (Scope.java:1011) at org.eclipse.jdt.internal.compiler.lookup.BlockScope.getBinding (BlockScope.java:393) at org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference.resolveType (QualifiedNameReference.java:746) at org.eclipse.jdt.internal.compiler.ast.Expression.resolveTypeExpecting (Expression.java:455) at org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression.resolveType (ArrayAllocationExpression.java:150) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve (LocalDeclaration.java:195) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatemen ts(AbstractMethodDeclaration.java:363) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements (MethodDeclaration.java:137) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve (AbstractMethodDeclaration.java:353) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve (TypeDeclaration.java:848) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve (TypeDeclaration.java:889) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve (CompilationUnitDeclaration.java:271) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:571) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:610) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:168) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:205) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation (ReconcileWorkingCopyOperation.java:62) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:366) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:705) at org.eclipse.jdt.internal.core.JavaElement.runOperation (JavaElement.java:523) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1031) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1007) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:72) - locked <04ED5C18> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:99) at org.eclipse.jface.text.reconciler.MonoReconciler.process (MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B011B38 nid=0xe34 runnable [cf2f000..cf2fd8c] at java.lang.Object.wait(Native Method) - waiting on <04D686C0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04D686C0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B20A688 nid=0xbe8 runnable [cecf000..cecfd8c] at java.lang.Object.wait(Native Method) - waiting on <04D4FE28> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04D4FE28> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B00F2F8 nid=0x1fc runnable [ce6f000..ce6fd8c] at java.lang.Object.wait(Native Method) - waiting on <04CE22A8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04CE22A8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0194D8 nid=0x8d8 runnable [ce0e000..ce0fd8c] at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextChar (Scanner.java:541) at org.eclipse.jdt.internal.compiler.parser.Scanner.scanNumber (Scanner.java:2973) at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextToken (Scanner.java:1384) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5611) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5785) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:158) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:278) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:128) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUn it(SourceTypeConverter.java:77) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept (CompilationUnitProblemFinder.java:98) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType (LookupEnvironment.java:106) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage (PackageBinding.java:174) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage (Scope.java:1353) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType (Scope.java:1197) at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding (SingleTypeReference.java:43) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor (SourceTypeBinding.java:824) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMethods (SourceTypeBinding.java:530) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getExactConstructor (SourceTypeBinding.java:421) at org.eclipse.jdt.internal.compiler.lookup.BlockScope.getConstructor (BlockScope.java:605) at org.eclipse.jdt.internal.compiler.ast.AllocationExpression.resolveType (AllocationExpression.java:244) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve (LocalDeclaration.java:195) at org.eclipse.jdt.internal.compiler.ast.Block.resolveUsing (Block.java:115) at org.eclipse.jdt.internal.compiler.ast.TryStatement.resolve (TryStatement.java:469) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatemen ts(AbstractMethodDeclaration.java:363) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements (MethodDeclaration.java:137) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve (AbstractMethodDeclaration.java:353) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve (TypeDeclaration.java:848) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve (TypeDeclaration.java:889) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve (CompilationUnitDeclaration.java:271) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:571) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:610) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:168) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:205) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation (ReconcileWorkingCopyOperation.java:62) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:366) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:705) at org.eclipse.jdt.internal.core.JavaElement.runOperation (JavaElement.java:523) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1031) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1007) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:72) - locked <04C5EC10> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:99) at org.eclipse.jface.text.reconciler.MonoReconciler.process (MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AFF1B08 nid=0xd60 runnable [cdaf000..cdafd8c] at java.lang.Object.wait(Native Method) - waiting on <04BC7C68> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04BC7C68> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AFF01B0 nid=0x5c8 runnable [cd4f000..cd4fd8c] at java.lang.Object.wait(Native Method) - waiting on <04B74178> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04B74178> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B0C88F0 nid=0xe9c runnable [ccef000..ccefd8c] at java.lang.Object.wait(Native Method) - waiting on <04B09390> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04B09390> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AFE0CD0 nid=0xd3c runnable [cc8f000..cc8fd8c] at java.lang.Object.wait(Native Method) - waiting on <04A8BB80> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04A8BB80> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AFEE0F0 nid=0xe04 runnable [cc2f000..cc2fd8c] at java.lang.Object.wait(Native Method) - waiting on <04A53538> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04A53538> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AF7BCD8 nid=0x5b4 runnable [cbcf000..cbcfd8c] at java.lang.Object.wait(Native Method) - waiting on <049524D0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <049524D0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AF6AE98 nid=0x8d0 runnable [cb6f000..cb6fd8c] at java.lang.Object.wait(Native Method) - waiting on <048EE330> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <048EE330> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AF4B170 nid=0xcb8 runnable [cb0e000..cb0fd8c] at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextChar (Scanner.java:467) at org.eclipse.jdt.internal.compiler.parser.Scanner.scanNumber (Scanner.java:2934) at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextToken (Scanner.java:1384) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5611) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5785) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:158) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:278) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:128) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUn it(SourceTypeConverter.java:77) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept (CompilationUnitProblemFinder.java:98) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType (LookupEnvironment.java:106) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage (PackageBinding.java:174) at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage (Scope.java:1353) at org.eclipse.jdt.internal.compiler.lookup.Scope.getType (Scope.java:1197) at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding (SingleTypeReference.java:43) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypesFor (SourceTypeBinding.java:847) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getMethods (SourceTypeBinding.java:530) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getExactMethod (SourceTypeBinding.java:458) at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getExactMethod (SourceTypeBinding.java:477) at org.eclipse.jdt.internal.compiler.lookup.Scope.findExactMethod (Scope.java:170) at org.eclipse.jdt.internal.compiler.lookup.BlockScope.getMethod (BlockScope.java:1042) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType (MessageSend.java:230) at org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType (MessageSend.java:193) at org.eclipse.jdt.internal.compiler.ast.FieldReference.resolveType (FieldReference.java:490) at org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve (LocalDeclaration.java:195) at org.eclipse.jdt.internal.compiler.ast.Statement.resolveCase (Statement.java:79) at org.eclipse.jdt.internal.compiler.ast.SwitchStatement.resolve (SwitchStatement.java:258) at org.eclipse.jdt.internal.compiler.ast.Block.resolve(Block.java:101) at org.eclipse.jdt.internal.compiler.ast.ForStatement.resolve (ForStatement.java:321) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatemen ts(AbstractMethodDeclaration.java:363) at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements (MethodDeclaration.java:137) at org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve (AbstractMethodDeclaration.java:353) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve (TypeDeclaration.java:848) at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve (TypeDeclaration.java:889) at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve (CompilationUnitDeclaration.java:271) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:571) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:610) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:168) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:205) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation (ReconcileWorkingCopyOperation.java:62) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:366) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:705) at org.eclipse.jdt.internal.core.JavaElement.runOperation (JavaElement.java:523) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1031) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1007) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:72) - locked <048787B8> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:99) at org.eclipse.jface.text.reconciler.MonoReconciler.process (MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AF69950 nid=0xd6c runnable [caaf000..caafd8c] at java.lang.Object.wait(Native Method) - waiting on <04842090> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04842090> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AD55388 nid=0xd2c runnable [ca4f000..ca4fd8c] at java.lang.Object.wait(Native Method) - waiting on <047A80B8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <047A80B8> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AD53008 nid=0x9b8 runnable [c9ef000..c9efd8c] at java.lang.Object.wait(Native Method) - waiting on <04743AA0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04743AA0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AD63BC0 nid=0x6a4 runnable [c99f000..c99fd8c] at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextChar (Scanner.java:541) at org.eclipse.jdt.internal.compiler.parser.Scanner.scanNumber (Scanner.java:2973) at org.eclipse.jdt.internal.compiler.parser.Scanner.getNextToken (Scanner.java:1384) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5611) at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:5785) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:158) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:278) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.convert (SourceTypeConverter.java:128) at org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter.buildCompilationUn it(SourceTypeConverter.java:77) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.accept (CompilationUnitProblemFinder.java:98) at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType (LookupEnvironment.java:106) at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage (PackageBinding.java:174) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findOnDemandImpor t(CompilationUnitScope.java:373) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleTypeImp ort(CompilationUnitScope.java:432) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports (CompilationUnitScope.java:309) at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes (CompilationUnitScope.java:359) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:564) at org.eclipse.jdt.internal.compiler.Compiler.resolve (Compiler.java:610) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:168) at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process (CompilationUnitProblemFinder.java:205) at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation (ReconcileWorkingCopyOperation.java:62) at org.eclipse.jdt.internal.core.JavaModelOperation.execute (JavaModelOperation.java:366) at org.eclipse.jdt.internal.core.JavaModelOperation.run (JavaModelOperation.java:705) at org.eclipse.jdt.internal.core.JavaElement.runOperation (JavaElement.java:523) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1031) at org.eclipse.jdt.internal.core.CompilationUnit.reconcile (CompilationUnit.java:1007) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:72) - locked <046BCA60> (a org.eclipse.jdt.internal.core.CompilationUnit) at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile (JavaReconcilingStrategy.java:99) at org.eclipse.jface.text.reconciler.MonoReconciler.process (MonoReconciler.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0AD60DA8 nid=0x930 runnable [c95f000..c95fd8c] at java.lang.Object.wait(Native Method) - waiting on <04643840> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <04643840> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0B182EF0 nid=0xcc4 runnable [b68f000..b68fd8c] at java.lang.Object.wait(Native Method) - waiting on <0387AF40> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run (AbstractReconciler.java:161) - locked <0387AF40> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "Java indexing" daemon prio=4 tid=0x0AF3BA90 nid=0xb44 in Object.wait() [b64f000..b64fd8c] at java.lang.Object.wait(Native Method) - waiting on <0371DF48> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:426) at org.eclipse.jdt.internal.core.search.processing.JobManager.run (JobManager.java:358) - locked <0371DF48> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:536) "Signal Dispatcher" daemon prio=10 tid=0x009A8C80 nid=0xdb4 waiting on condition [0..0] "Finalizer" daemon prio=9 tid=0x009A5218 nid=0x35c in Object.wait() [ab1f000..ab1fd8c] at java.lang.Object.wait(Native Method) - waiting on <02F566B0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <02F566B0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x009EDDF8 nid=0xe28 in Object.wait() [aadf000..aadfd8c] at java.lang.Object.wait(Native Method) - waiting on <02F56718> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:426) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113) - locked <02F56718> (a java.lang.ref.Reference$Lock) "main" prio=5 tid=0x000354E8 nid=0x838 runnable [7f000..7fc40] at org.eclipse.swt.internal.win32.OS.WaitMessage(Native Method) at org.eclipse.swt.widgets.Display.sleep(Display.java:2484) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2038) at org.eclipse.ui.internal.Workbench.run(Workbench.java:2020) at org.eclipse.core.internal.boot.InternalBootLoader.run (InternalBootLoader.java:858) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:295) at org.eclipse.core.launcher.Main.run(Main.java:751) at org.eclipse.core.launcher.Main.main(Main.java:587) "VM Thread" prio=5 tid=0x009ECB48 nid=0x594 runnable "VM Periodic Task Thread" prio=10 tid=0x009A7638 nid=0xa60 waiting on condition "Suspend Checker Thread" prio=10 tid=0x009A8230 nid=0x764 runnable java.lang.OutOfMemoryError java.lang.OutOfMemoryError java.lang.OutOfMemoryError java.lang.OutOfMemoryError java.lang.OutOfMemoryError
Moving to JDT UI Interesting to note there are six reconciler threads that are actively running.
How do you start Eclipse? Do you give it more memory via command line argument?
The reconciler threads might be "dead" since there's an out of memory exception.
This is the command line I am currently using so that I can get thread dumps if needed. Note that I allow 512MB for Eclipse. C:\WINNT\system32\java.exe -cp startup.jar org.eclipse.core.launcher.Main - update -data E:\CRYPTOAdminBug665 -showlocation -vmargs -Xmx512M
The dump shows an out of memory exception. Once you reached the limit all functions either degrade in performance or won't work. Can you answer some questions: 1. is it also very slow after starting up Eclipse? 2. how many open editors per perspective? which kind of editors 3. are the perspectives in one window or per window?
1. It takes about 5 min. to come up but that has not changed in a long time. I have Eclipse configured to do a refresh at startup. Things go well for 2-3 min. after startup completes (althogh this varies depending on exactly what I am doing) and then starts to slow down very significantly. For example it typically can take a minute after I encounter a breakpoint before the UI will allow me to do anything. For about 45 sec. the busy wait cursor is presented and is not present for the last 15 sec. or so. 2. At the moment I have 24 editors open. This varies between 1-40 depending on exactly what I am doing. All the editors are Java editors. 3. I only run one window. Note that I am using about 128MB out of 512MB permitted until things
can you do the following test for me: When it's very slow close all editors and then try to switch. Is it still slow then?
This only happens occasionally. Today it has only happened once. When it does happen the CPU usage on both processors is pegged at 100%. I suspect that the root cause is whatever triggered the high CPU usage.
Please reopen once you have more info and a stack trace which is not combine with an out of memory exception.
Get rid of deprecated state.
.