Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Issue 9373059: Multimap replacement (Closed)

Created:
8 years, 10 months ago by danrubel
Modified:
8 years, 10 months ago
Reviewers:
mmendez, scheglov, ahe, zundel
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Patch Set 1 #

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 16

Patch Set 4 : #

Patch Set 5 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+442 lines, -27 lines) Patch
M compiler/java/com/google/dart/compiler/resolver/ClassElementImplementation.java View 1 2 3 6 chunks +7 lines, -27 lines 0 comments Download
A compiler/java/com/google/dart/compiler/resolver/ElementMap.java View 1 2 3 1 chunk +246 lines, -0 lines 0 comments Download
A compiler/javatests/com/google/dart/compiler/resolver/ElementMapTest.java View 1 2 3 4 1 chunk +188 lines, -0 lines 0 comments Download
M compiler/javatests/com/google/dart/compiler/resolver/ResolverTests.java View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
danrubel
ElementMap saves about 15% per compile/analyze cycle MultiMap 18 Analyze : Average 1919 ms 19 ...
8 years, 10 months ago (2012-02-13 01:54:33 UTC) #1
ahe
LGTM! http://codereview.chromium.org/9373059/diff/7001/compiler/java/com/google/dart/compiler/resolver/ElementMap.java File compiler/java/com/google/dart/compiler/resolver/ElementMap.java (right): http://codereview.chromium.org/9373059/diff/7001/compiler/java/com/google/dart/compiler/resolver/ElementMap.java#newcode39 compiler/java/com/google/dart/compiler/resolver/ElementMap.java:39: throw new RuntimeException(); Nit, in my opinion, it ...
8 years, 10 months ago (2012-02-13 13:25:56 UTC) #2
mmendez
lgtm https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/google/dart/compiler/resolver/ElementMap.java File compiler/java/com/google/dart/compiler/resolver/ElementMap.java (right): https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/google/dart/compiler/resolver/ElementMap.java#newcode45 compiler/java/com/google/dart/compiler/resolver/ElementMap.java:45: throw new RuntimeException(); Nit: I have to agree ...
8 years, 10 months ago (2012-02-13 15:08:56 UTC) #3
ahe
https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/google/dart/compiler/resolver/ElementMap.java File compiler/java/com/google/dart/compiler/resolver/ElementMap.java (right): https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/google/dart/compiler/resolver/ElementMap.java#newcode111 compiler/java/com/google/dart/compiler/resolver/ElementMap.java:111: if ((elements.length >> 2) * 3 <= size()) { ...
8 years, 10 months ago (2012-02-13 16:47:51 UTC) #4
danrubel
8 years, 10 months ago (2012-02-14 13:18:25 UTC) #5
Comments addresseda.

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/go...
File compiler/java/com/google/dart/compiler/resolver/ElementMap.java (right):

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/go...
compiler/java/com/google/dart/compiler/resolver/ElementMap.java:39: throw new
RuntimeException();
On 2012/02/13 13:25:56, ahe wrote:
> Nit, in my opinion, it is better to use:
> 
> new AssertionError("ElementHolder should not be accessed outside this class");

Done.

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/go...
compiler/java/com/google/dart/compiler/resolver/ElementMap.java:45: throw new
RuntimeException();
On 2012/02/13 15:08:56, mmendez wrote:
> Nit: I have to agree with Peter on the conversion to an AssertionError on the
> following elements as well.

Done.

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/go...
compiler/java/com/google/dart/compiler/resolver/ElementMap.java:111: if
((elements.length >> 2) * 3 <= size()) {
On 2012/02/13 16:47:51, ahe wrote:
> On 2012/02/13 15:08:56, mmendez wrote:
> > Nit: not sure how the  lhs of the size comp was arrived at.
> 
> This is 75% fill rate which anecdotal evidence claims is a good threshold for
> growing.

Added as comment for clarity.

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/go...
compiler/java/com/google/dart/compiler/resolver/ElementMap.java:206: //
System.err.println("Growing to " + elements.length);
On 2012/02/13 13:25:56, ahe wrote:
> Remove debug code.

Done.

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/java/com/go...
compiler/java/com/google/dart/compiler/resolver/ElementMap.java:241: int mask =
elements.length - 1;
On 2012/02/13 16:47:51, ahe wrote:
> On 2012/02/13 15:08:56, mmendez wrote:
> > Nit: does it matter if elements.length is not a power of two?
> 
> I don't think this code would work well if elements.length is not a power of
> two.

Added comment to this effect for clarity.

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/javatests/c...
File compiler/javatests/com/google/dart/compiler/resolver/ElementMapTest.java
(right):

https://chromiumcodereview.appspot.com/9373059/diff/7001/compiler/javatests/c...
compiler/javatests/com/google/dart/compiler/resolver/ElementMapTest.java:4: *
Licensed under the Eclipse Public License v1.0 (the "License"); you may not use
this file except
On 2012/02/13 13:25:56, ahe wrote:
> Wrong license.

Good catch. Fixed.

Powered by Google App Engine
This is Rietveld 408576698