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

Issue 2449383002: New zone-backed list datastructure to replace ZoneList (Closed)

Created:
4 years, 1 month ago by heimbuef
Modified:
4 years, 1 month ago
CC:
v8-reviews_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

New zone-backed list datastructure to replace ZoneList Since ZoneLists are essentially non-standard ZoneVectors and have a bad growing behaviour (ZoneList-allocations make up ~50% of website parse zone memory) we should stop using them. The zone-containers are merely a clean-up, with none of them actually better suited to be used with zones. This new datastructure allows most operations of a LinkedList ( except pop_first and insertAt/removeAt) but uses about the same memory as a well-initialized ZoneVector/ZoneList (<3% overhead with reasonably large lists). It also never attempts to free memory again (which would not work in zones anyway). The ZoneChunkList is essentially a doubly-linked-list of arrays of variable size. Some test-results where I tried storing 16k pointers in different list types (lists themselves also zone-allocated): List type Zone memory used Time taken ----------------------------------------------------------------------- Zone array (for comparison) 131072 B Ideally initialized ZoneList 131088 B 0.062ms ChunkZoneList 134744 B 0.052ms <--new thing ZoneDeque 141744 B ZoneLinkedList 393264 B Initially empty ZoneList 524168 B 0.171ms <--right now ChunkZoneList only push_front 524320 B Committed: https://crrev.com/610c0d75c872c85af5d8fa88fd947e957956a505 Cr-Commit-Position: refs/heads/master@{#40602}

Patch Set 1 : Changed test to account for the list sizes as well #

Total comments: 23

Patch Set 2 : Reaction to comments #

Patch Set 3 : Added time measurements #

Patch Set 4 : appease trybots #

Patch Set 5 : appease windows compiler #

Patch Set 6 : Reaction to comments #

Total comments: 2

Patch Set 7 : Added some debug checks #

Unified diffs Side-by-side diffs Delta from patch set Stats (+585 lines, -0 lines) Patch
M BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M src/v8.gyp View 1 chunk +1 line, -0 lines 0 comments Download
A src/zone/zone-chunk-list.h View 1 2 3 4 5 6 1 chunk +437 lines, -0 lines 0 comments Download
M test/unittests/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M test/unittests/unittests.gyp View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
A test/unittests/zone/zone-chunk-list-unittest.cc View 1 2 3 4 5 6 1 chunk +144 lines, -0 lines 0 comments Download

Messages

Total messages: 49 (41 generated)
heimbuef
PTAL
4 years, 1 month ago (2016-10-26 12:57:55 UTC) #5
jochen (gone - plz use gerrit)
what's the runtime performance of using this? Can you please run tryjobs? I'd expect that ...
4 years, 1 month ago (2016-10-26 13:24:12 UTC) #13
heimbuef
On 2016/10/26 at 13:24:12, jochen wrote: > what's the runtime performance of using this? > ...
4 years, 1 month ago (2016-10-26 13:29:30 UTC) #14
Jakob Kummerow
I like this! But I have a bunch of comments. https://codereview.chromium.org/2449383002/diff/20001/src/zone/zone-chunk-list.h File src/zone/zone-chunk-list.h (right): https://codereview.chromium.org/2449383002/diff/20001/src/zone/zone-chunk-list.h#newcode25 ...
4 years, 1 month ago (2016-10-26 14:45:10 UTC) #27
Jakob Kummerow
LGTM with two more comments. https://codereview.chromium.org/2449383002/diff/120001/src/zone/zone-chunk-list.h File src/zone/zone-chunk-list.h (right): https://codereview.chromium.org/2449383002/diff/120001/src/zone/zone-chunk-list.h#newcode348 src/zone/zone-chunk-list.h:348: DCHECK_LT(size_t(0), size()); Did you ...
4 years, 1 month ago (2016-10-26 16:08:10 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2449383002/180001
4 years, 1 month ago (2016-10-26 17:05:53 UTC) #46
commit-bot: I haz the power
Committed patchset #7 (id:180001)
4 years, 1 month ago (2016-10-26 17:07:54 UTC) #47
commit-bot: I haz the power
4 years, 1 month ago (2016-11-17 22:14:38 UTC) #49
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/610c0d75c872c85af5d8fa88fd947e957956a505
Cr-Commit-Position: refs/heads/master@{#40602}

Powered by Google App Engine
This is Rietveld 408576698