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

Issue 1316213008: Speedup JSReceiver::GetKeys (Closed)

Created:
5 years, 3 months ago by Camillo Bruni
Modified:
5 years, 3 months ago
Reviewers:
Igor Sheludko
CC:
Jakob Kummerow, v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Improve JSReceiver::GetKeys Speed The core bottleneck lies in N-square cost of array union. Depending on the size of the arrays involved it makes sense to rely on a hash-set/table for the lookup. LOG=N BUG=v8:2904 Committed: https://crrev.com/007eac94a14f5b4db36babeaa1e8fd677aec2c17 Cr-Commit-Position: refs/heads/master@{#30797}

Patch Set 1 #

Patch Set 2 : improvements #

Total comments: 2

Patch Set 3 : KeyAccumulator Implementation #

Patch Set 4 : Removal of accidental changes #

Total comments: 2

Patch Set 5 : Removing UnionOfKey #

Total comments: 7

Patch Set 6 : Using OrderedHashSet #

Patch Set 7 : Using OrderedHasSet #

Total comments: 2

Patch Set 8 : Fixing DCHECK #

Total comments: 16

Patch Set 9 : adressing comments #

Total comments: 2

Patch Set 10 : Fixing nits #

Patch Set 11 : Compilation Fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+293 lines, -209 lines) Patch
M src/elements.h View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -3 lines 0 comments Download
M src/elements.cc View 1 2 3 4 5 6 7 8 2 chunks +17 lines, -81 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 6 chunks +50 lines, -12 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 8 chunks +177 lines, -75 lines 0 comments Download
M src/runtime/runtime-array.cc View 1 2 4 1 chunk +28 lines, -27 lines 0 comments Download
M src/runtime/runtime-object.cc View 1 2 3 4 5 6 7 8 1 chunk +18 lines, -11 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 41 (18 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/1
5 years, 3 months ago (2015-09-08 15:31:17 UTC) #2
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 3 months ago (2015-09-08 16:21:46 UTC) #4
Camillo Bruni
PTAL I think some more work could be done, but I am lacking the proper ...
5 years, 3 months ago (2015-09-09 09:34:00 UTC) #6
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/40001
5 years, 3 months ago (2015-09-11 15:53:15 UTC) #8
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/5727)
5 years, 3 months ago (2015-09-11 15:55:56 UTC) #10
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/60001
5 years, 3 months ago (2015-09-11 16:12:35 UTC) #12
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 3 months ago (2015-09-11 16:39:36 UTC) #14
Camillo Bruni
PTAL https://codereview.chromium.org/1316213008/diff/60001/src/objects.cc File src/objects.cc (right): https://codereview.chromium.org/1316213008/diff/60001/src/objects.cc#newcode6561 src/objects.cc:6561: if (length_ * count < 100) return; I ...
5 years, 3 months ago (2015-09-14 07:34:05 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/80001
5 years, 3 months ago (2015-09-14 07:34:11 UTC) #17
commit-bot: I haz the power
No L-G-T-M from a valid reviewer yet. Only full committers are accepted. Even if an ...
5 years, 3 months ago (2015-09-14 07:34:13 UTC) #19
Camillo Bruni
https://codereview.chromium.org/1316213008/diff/80001/src/objects.h File src/objects.h (right): https://codereview.chromium.org/1316213008/diff/80001/src/objects.h#newcode10471 src/objects.h:10471: class KeyAccumulator final BASE_EMBEDDED { I wasn't really sure ...
5 years, 3 months ago (2015-09-14 07:45:40 UTC) #20
Camillo Bruni
5 years, 3 months ago (2015-09-15 15:05:27 UTC) #22
Camillo Bruni
PTAL Updated CL with OrderedHashSet
5 years, 3 months ago (2015-09-16 10:49:13 UTC) #24
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/120001
5 years, 3 months ago (2015-09-16 10:49:25 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg/builds/8710)
5 years, 3 months ago (2015-09-16 11:55:49 UTC) #28
Igor Sheludko
Cool stuff! Mostly nits: https://codereview.chromium.org/1316213008/diff/80001/src/objects.cc File src/objects.cc (right): https://codereview.chromium.org/1316213008/diff/80001/src/objects.cc#newcode6492 src/objects.cc:6492: int KeyAccumulator::GetLength() { return length_; ...
5 years, 3 months ago (2015-09-17 09:55:12 UTC) #29
Camillo Bruni
adressed your feedback https://codereview.chromium.org/1316213008/diff/140001/src/elements.cc File src/elements.cc (right): https://codereview.chromium.org/1316213008/diff/140001/src/elements.cc#newcode876 src/elements.cc:876: virtual void AddElementsToFixedArrayWithAccumulator( On 2015/09/17 at ...
5 years, 3 months ago (2015-09-17 11:01:08 UTC) #30
Igor Sheludko
Lgtm with a couple of nits: https://codereview.chromium.org/1316213008/diff/160001/src/objects.cc File src/objects.cc (right): https://codereview.chromium.org/1316213008/diff/160001/src/objects.cc#newcode6610 src/objects.cc:6610: int KeyAccumulator::GetLength() { ...
5 years, 3 months ago (2015-09-17 11:48:45 UTC) #31
Camillo Bruni
addressing nits
5 years, 3 months ago (2015-09-17 12:19:21 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/180001
5 years, 3 months ago (2015-09-17 12:19:38 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1316213008/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1316213008/200001
5 years, 3 months ago (2015-09-17 12:27:30 UTC) #39
commit-bot: I haz the power
Committed patchset #11 (id:200001)
5 years, 3 months ago (2015-09-17 12:52:50 UTC) #40
commit-bot: I haz the power
5 years, 3 months ago (2015-09-17 12:53:02 UTC) #41
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/007eac94a14f5b4db36babeaa1e8fd677aec2c17
Cr-Commit-Position: refs/heads/master@{#30797}

Powered by Google App Engine
This is Rietveld 408576698