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

Issue 23723008: Fixes slow object pool search on x64. (Closed)

Created:
7 years, 3 months ago by zra
Modified:
7 years, 3 months ago
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fixes slow object pool search on x64. Issue 13144. R=iposva@google.com Committed: https://code.google.com/p/dart/source/detail?r=27494

Patch Set 1 #

Total comments: 2

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Total comments: 8

Patch Set 5 : #

Total comments: 2

Patch Set 6 : #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+70 lines, -11 lines) Patch
M runtime/tests/vm/vm.status View 1 1 chunk +0 lines, -3 lines 0 comments Download
M runtime/vm/assembler_x64.h View 1 2 3 4 5 2 chunks +42 lines, -0 lines 4 comments Download
M runtime/vm/assembler_x64.cc View 1 2 3 4 5 4 chunks +26 lines, -8 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 5 2 chunks +2 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
zra
7 years, 3 months ago (2013-09-09 17:55:59 UTC) #1
Florian Schneider
https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h File runtime/vm/assembler_x64.h (right): https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h#newcode844 runtime/vm/assembler_x64.h:844: typedef RawObject* Key; The hash map contains raw pointers, ...
7 years, 3 months ago (2013-09-09 19:03:11 UTC) #2
zra
On 2013/09/09 19:03:11, Florian Schneider wrote: > https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h > File runtime/vm/assembler_x64.h (right): > > https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h#newcode844 ...
7 years, 3 months ago (2013-09-09 19:38:44 UTC) #3
Ivan Posva
On 2013/09/09 19:38:44, zra wrote: > On 2013/09/09 19:03:11, Florian Schneider wrote: > > https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h ...
7 years, 3 months ago (2013-09-09 20:03:33 UTC) #4
zra
PTAL Thanks, Zach https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h File runtime/vm/assembler_x64.h (right): https://codereview.chromium.org/23723008/diff/1/runtime/vm/assembler_x64.h#newcode844 runtime/vm/assembler_x64.h:844: typedef RawObject* Key; On 2013/09/09 19:03:11, ...
7 years, 3 months ago (2013-09-13 16:49:34 UTC) #5
Ivan Posva
LGTM with comments. -Ivan https://codereview.chromium.org/23723008/diff/19001/runtime/vm/assembler_x64.cc File runtime/vm/assembler_x64.cc (right): https://codereview.chromium.org/23723008/diff/19001/runtime/vm/assembler_x64.cc#newcode2178 runtime/vm/assembler_x64.cc:2178: if (obj.raw() == Object::null()) { ...
7 years, 3 months ago (2013-09-13 17:25:09 UTC) #6
zra
Thanks! https://codereview.chromium.org/23723008/diff/19001/runtime/vm/assembler_x64.cc File runtime/vm/assembler_x64.cc (right): https://codereview.chromium.org/23723008/diff/19001/runtime/vm/assembler_x64.cc#newcode2178 runtime/vm/assembler_x64.cc:2178: if (obj.raw() == Object::null()) { On 2013/09/13 17:25:09, ...
7 years, 3 months ago (2013-09-13 17:46:18 UTC) #7
zra
Committed patchset #6 manually as r27494 (presubmit successful).
7 years, 3 months ago (2013-09-13 18:10:10 UTC) #8
Florian Schneider
https://codereview.chromium.org/23723008/diff/19002/runtime/vm/assembler_x64.h File runtime/vm/assembler_x64.h (right): https://codereview.chromium.org/23723008/diff/19002/runtime/vm/assembler_x64.h#newcode856 runtime/vm/assembler_x64.h:856: typedef RawObject* Key; Is there a performance reason for ...
7 years, 3 months ago (2013-09-16 09:09:48 UTC) #9
Ivan Posva
-Ivan https://codereview.chromium.org/23723008/diff/19002/runtime/vm/assembler_x64.h File runtime/vm/assembler_x64.h (right): https://codereview.chromium.org/23723008/diff/19002/runtime/vm/assembler_x64.h#newcode856 runtime/vm/assembler_x64.h:856: typedef RawObject* Key; On 2013/09/16 09:09:48, Florian Schneider ...
7 years, 3 months ago (2013-09-16 15:02:20 UTC) #10
Florian Schneider
7 years, 3 months ago (2013-09-16 15:13:36 UTC) #11
Message was sent while issue was closed.
On 2013/09/16 15:02:20, Ivan Posva wrote:
> -Ivan
> 
> https://codereview.chromium.org/23723008/diff/19002/runtime/vm/assembler_x64.h
> File runtime/vm/assembler_x64.h (right):
> 
>
https://codereview.chromium.org/23723008/diff/19002/runtime/vm/assembler_x64....
> runtime/vm/assembler_x64.h:856: typedef RawObject* Key;
> On 2013/09/16 09:09:48, Florian Schneider wrote:
> > Is there a performance reason for using raw pointers here? If not, 
> > how about using const Object* instead of RawObject* as key? E.g. once there
is
> a
> > compacting GC, the old-object argument does not hold anymore. The fewer
places
> > that rely on old objects not moving, the better.
> 
> You cannot hash on handles when you are trying to get an identity map of
> objects. You get many different handles for one object. See the TODO and issue
> above...

Just use String::Handle(String::New(key->ToCString())).Hash()

Powered by Google App Engine
This is Rietveld 408576698