JDK-6250473 : REGRESSION: apt slower in Tiger update train than FCS due to name lookup
  • Type: Bug
  • Component: tools
  • Sub-Component: apt
  • Affected Version: 6
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2005-04-05
  • Updated: 2010-04-02
  • Resolved: 2005-04-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other JDK 6
5.0u3Fixed 6 b33Fixed
Related Reports
Relates :  
Description
BEA has noted a significant speed regression in apt from FCS to update 2.  Some of the cause appears to be the fixes for 6174696 "apt getTypeDeclaration(Strings) cannot find classes that are not already loaded."  Include a search of javac symbol tables before turning to the more general purpose lookup reduces the speed regression.

###@###.### 2005-04-05 02:08:26 GMT

Comments
SUGGESTED FIX src/share/classes/com/sun/tools/apt/mirror/declaration>sccs sccsdiff -r1.7 -r1.8 DeclarationMaker.java ------- DeclarationMaker.java ------- 4c4 < * Copyright 2004 Sun Microsystems, Inc. All rights reserved. --- > * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 30c30 < --- > private JavaCompiler javacompiler; 45a46 > this.javacompiler = JavaCompiler.instance(context); 78c79 < Symbol s = nameToSymbol(name); --- > Symbol s = nameToSymbol(name, false); 125c126 < Symbol s = nameToSymbol(name); --- > Symbol s = nameToSymbol(name, true); 137,138c138 < private Symbol nameToSymbol(String name) { < JavaCompiler jc = JavaCompiler.instance(context); --- > private Symbol nameToSymbol(String name, boolean classCache) { 140c140,149 < s = jc.resolveIdent(name); --- > Name nameName = env.names.fromString(name); > if (classCache) > s = env.symtab.classes.get(nameName); > else > s = env.symtab.packages.get(nameName); > > if (s != null && s.exists()) > return s; > > s = javacompiler.resolveIdent(name); ###@###.### 2005-04-07 22:44:00 GMT
07-04-2005

EVALUATION Should be fixed. ###@###.### 2005-04-05 02:11:19 GMT
05-04-2005