http://gwt-code-reviews.appspot.com/1801804/diff/1/core/src/com/google/gwt/dev/shell/DispatchClassInfo.java File core/src/com/google/gwt/dev/shell/DispatchClassInfo.java (right):
http://gwt-code-reviews.appspot.com/1801804/diff/1/core/src/com/google/gwt/dev/shell/DispatchClassInfo.java#newcode86 core/src/com/google/gwt/dev/shell/DispatchClassInfo.java:86: Integer id = memberIdByMember.get(m); On 2013/01/15 01:38:37, mdempsky wrote:
Is this a very heavily used function and/or does memberBy[Member]Id
get very
large normally? If not, would it be simpler to just do:
int id = memberById.indexOf(m); if (id == -1) { id = memberById.size(); memberById.add(m); } memberIdByName.put(StringInterner.get().intern(name), id);
I believe that was essentially the implementation I originally wrote, and was changed as part of a modification for performance and memory usage (which is where the StringInterner calls came in). At the time, AdWords was having trouble running DevMode in a 32bit JVM. I wasn't involved in that, but I presume there were lots of duplicate strings which led to this being a win. http://gwt-code-reviews.appspot.com/1801804/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors