Summary: | Switching JRE is slow | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Jerome Lanneluc <jerome_lanneluc> |
Component: | Core | Assignee: | Philipe Mulet <philippe_mulet> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | ||
Version: | 2.0 | ||
Target Milestone: | 2.0 M5 | ||
Hardware: | PC | ||
OS: | Windows 2000 | ||
Whiteboard: |
Description
Jerome Lanneluc
2002-02-13 10:30:20 EST
We also need to improve the SetClasspathOperation involved in there. Having 5 projects in my workspace: P1 P2 prereqs P1 P3 prereqs P2, P1 P4 prereqs P2, P1 P5 prereqs P3, P2, P1 Changing JRE settings, trigger too many SetClasspathOperations (should be exactly 5 occurrences). SetClasspathOperation - classpath : { /P5/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P3 [CPE_PROJECT][K_SOURCE][isExported:false], /P2[CPE_PROJECT][K_SOURCE] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P4/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P2[CPE_PROJECT][K_SOURCE][isExported:false], /P1 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P3/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P2 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P2/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P1/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P5/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P3 [CPE_PROJECT][K_SOURCE][isExported:false], /P2[CPE_PROJECT][K_SOURCE] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P4/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P2[CPE_PROJECT][K_SOURCE][isExported:false], /P1 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P3/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P2 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P2/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P1/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P5/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P3 [CPE_PROJECT][K_SOURCE][isExported:false], /P2[CPE_PROJECT][K_SOURCE] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P4/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P2[CPE_PROJECT][K_SOURCE][isExported:false], /P1 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P3/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P2 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P2/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P1/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P5/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P3 [CPE_PROJECT][K_SOURCE][isExported:false], /P2[CPE_PROJECT][K_SOURCE] [isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P4/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P2[CPE_PROJECT][K_SOURCE][isExported:false], /P1 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P3/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false], /P2 [CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P2/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false], /P1[CPE_PROJECT][K_SOURCE][isExported:false] - output location : <Reuse Existing Output Location> SetClasspathOperation - classpath : { /P1/src[CPE_SOURCE][K_SOURCE][isExported:false], JRE_LIB [CPE_VARIABLE][K_SOURCE][sourcePath:JRE_SRC][rootPath:JRE_SRCROOT] [isExported:false] - output location : <Reuse Existing Output Location> New traces show 15 classpath settings instead of 20 (?). Anyway, 15 updates is 3 var x 5 projects, due to the JRE var trio. These variables should be allowed to be set simultaneously to avoid multiple refreshes. Added facility to update multiple variables at once, when using it, the number of classpath setting operations is down to 5 (once per project). Also fixed the JRE variable updating scenario to avoid updating cycle markers if variable could not denote a project name. Fixed |