Bug 27401 - [startup] Review JavaCore.startup()
Summary: [startup] Review JavaCore.startup()
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: 2.1 M5   Edit
Assignee: Kent Johnson CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
: 27551 28073 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-11-29 10:47 EST by Kent Johnson CLA
Modified: 2003-02-11 10:45 EST (History)
3 users (show)

See Also:


Attachments
opeing preference page (18.89 KB, text/plain)
2002-12-09 05:03 EST, Adam Kiezun CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kent Johnson CLA 2002-11-29 10:47:52 EST
Should consider starting the IndexManager background thread after the jdt.core 
plugin is started to improve our startup time. Currently it is started as part 
of JavaCore.startup().

If it cannot be started later, then consider increasing the 10 second delay in 
IndexManager.activateProcessing(). Also examine the need for & amount of work 
performed in the index consistency check.
Comment 1 Philipe Mulet CLA 2002-12-03 12:54:36 EST
*** Bug 27551 has been marked as a duplicate of this bug. ***
Comment 2 Kent Johnson CLA 2002-12-05 17:13:39 EST
While trying to eliminate the need for the consistency check, a job is created 
to re-index rt.jar before the consistencyCheck() is called, because it appears 
as if it was 'added' to the classpath. Why does it appear added?

SetClasspathOperation.generateClasspathChangeDeltas(IClasspathEntry[],...) 
line: 274
SetClasspathOperation.updateClasspath() line: 558
SetClasspathOperation.executeOperation() line: 242
SetClasspathOperation(JavaModelOperation).execute() line: 326
SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaProject(JavaElement).runOperation(JavaModelOperation,...) line: 562
JavaProject.setRawClasspath(IClasspathEntry[],...) line: 2090
JavaCore$4.run(IProgressMonitor) line: 2800
BatchOperation.executeOperation() line: 34
BatchOperation(JavaModelOperation).execute() line: 326
BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaCore.run(IWorkspaceRunnable, IProgressMonitor) line: 2383
JavaCore.updateVariableValues(String[], IPath[], IProgressMonitor) line: 2788
JavaCore.setClasspathVariables(String[], IPath[], IProgressMonitor) line: 2589
JavaCore.setClasspathVariable(String, IPath, IProgressMonitor) line: 2561
JavaClasspathVariablesInitializer.setJREVariable(IPath, String) line: 111
JavaClasspathVariablesInitializer.initialize(String) line: 55
JavaCore$2.run() line: 849
InternalPlatform.run(ISafeRunnable) line: 839
Platform.run(ISafeRunnable) line: 413
JavaCore.getClasspathVariable(String) line: 844
JavaCore.getResolvedVariablePath(IPath) line: 1487
JavaCore.getResolvedClasspathEntry(IClasspathEntry) line: 1454
JavaProject.getResolvedClasspath(IClasspathEntry[],...) line: 1383
SetClasspathOperation.updateProjectReferencesIfNecessary() line: 703
SetClasspathOperation.executeOperation() line: 228
SetClasspathOperation(JavaModelOperation).execute() line: 326
SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaProject(JavaElement).runOperation(JavaModelOperation,...) line: 562
JavaProject.setRawClasspath(IClasspathEntry[],...) line: 2090
JavaCore$4.run(IProgressMonitor) line: 2800
BatchOperation.executeOperation() line: 34
BatchOperation(JavaModelOperation).execute() line: 326
BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaCore.run(IWorkspaceRunnable, IProgressMonitor) line: 2383
JavaCore.updateVariableValues(String[], IPath[], IProgressMonitor) line: 2788
JavaCore.setClasspathVariables(String[], IPath[], IProgressMonitor) line: 2589
JavaCore.setClasspathVariable(String, IPath, IProgressMonitor) line: 2561
JavaClasspathVariablesInitializer.setJREVariable(IPath, String) line: 111
JavaClasspathVariablesInitializer.initialize(String) line: 55
JavaCore$2.run() line: 849
InternalPlatform.run(ISafeRunnable) line: 839
Platform.run(ISafeRunnable) line: 413
JavaCore.getClasspathVariable(String) line: 844
JavaCore.getResolvedVariablePath(IPath) line: 1487
JavaCore.getResolvedClasspathEntry(IClasspathEntry) line: 1453
JavaProject.getResolvedClasspath(IClasspathEntry[],...) line: 1383
SetClasspathOperation.updateProjectReferencesIfNecessary() line: 703
SetClasspathOperation.executeOperation() line: 228
SetClasspathOperation(JavaModelOperation).execute() line: 326
SetClasspathOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaProject(JavaElement).runOperation(JavaModelOperation,...) line: 562
JavaProject.setRawClasspath(IClasspathEntry[],...) line: 2090
JavaCore$4.run(IProgressMonitor) line: 2800
BatchOperation.executeOperation() line: 34
BatchOperation(JavaModelOperation).execute() line: 326
BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaCore.run(IWorkspaceRunnable, IProgressMonitor) line: 2383
JavaCore.updateVariableValues(String[], IPath[], IProgressMonitor) line: 2788
JavaCore.setClasspathVariables(String[], IPath[], IProgressMonitor) line: 2589
JavaCore.setClasspathVariable(String, IPath, IProgressMonitor) line: 2561
JavaClasspathVariablesInitializer.setJREVariable(IPath, String) line: 111
JavaClasspathVariablesInitializer.initialize(String) line: 55
JavaCore$2.run() line: 849
InternalPlatform.run(ISafeRunnable) line: 839
Platform.run(ISafeRunnable) line: 413
JavaCore.getClasspathVariable(String) line: 844
JavaCore.getResolvedVariablePath(IPath) line: 1487
JavaCore.getResolvedClasspathEntry(IClasspathEntry) line: 1402
JavaProject.getResolvedClasspath(IClasspathEntry[],...) line: 1383
JavaProject.getResolvedClasspath(boolean, boolean) line: 1328
JavaProject.getResolvedClasspath(boolean) line: 1305
IndexManager$2.run(IProgressMonitor) line: 405
BatchOperation.executeOperation() line: 34
BatchOperation(JavaModelOperation).execute() line: 326
BatchOperation(JavaModelOperation).run(IProgressMonitor) line: 626
Workspace.run(IWorkspaceRunnable, IProgressMonitor) line: 1581
JavaCore.run(IWorkspaceRunnable, IProgressMonitor) line: 2383
IndexManager.reset() line: 397
JavaCore.startIndexing() line: 2659
JavaCore.startup() line: 2691
Comment 3 Kent Johnson CLA 2002-12-05 18:01:40 EST
Moved the SaveIndex jobs to immediately after the IndexAllProject & 
IndexBinaryFolder jobs... instead of after all of these jobs are complete.
Comment 4 Adam Kiezun CLA 2002-12-09 05:03:46 EST
Created attachment 2717 [details]
opeing preference page

one more scenario where this would help is first opening of preference page 
(72% of time is spend in startIndexing())
Comment 5 Kent Johnson CLA 2002-12-09 16:52:05 EST
Related to bug 19303 and bug 27289
Comment 6 Philipe Mulet CLA 2002-12-11 06:39:13 EST
*** Bug 28073 has been marked as a duplicate of this bug. ***
Comment 7 Philipe Mulet CLA 2002-12-17 06:29:51 EST
Deferred to M5. Changes are quite big and too close to M4.
Need more testing.
Comment 8 Kent Johnson CLA 2003-01-06 17:49:58 EST
Removed all index consistency checks from JDT Core startup.

Released changes to persisently keep track of saved & consistent index files... 
any request to an inconsistent index adds a rebuildAll job to the queue.
Comment 9 David Audel CLA 2003-02-11 10:45:20 EST
Verified.