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

Issue 2511983003: HashTable: bring per-table stats tracking back to life. (Closed)

Created:
4 years, 1 month ago by sof
Modified:
4 years, 1 month ago
Reviewers:
haraken, Yuta Kitamura
CC:
chromium-reviews, blink-reviews, blink-reviews-wtf_chromium.org, Mikhail
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

HashTable: bring per-table stats tracking back to life. Recording per-hash table stats (DUMP_HASHTABLE_STATS_PER_TABLE) broke with the introduction of Oilpan, as the feature depended on finalizable HashTable<>s, something Oilpan heap hash tables are not. If the hash table resides on the Oilpan heap, arrange for the stats object to also reside there. While here, also unify the handling of global HashTable stats recording and the per-table representation. R= BUG= Committed: https://crrev.com/1fc422b4d064b0123155fafe162f4f01d9f44df2 Cr-Commit-Position: refs/heads/master@{#433494}

Patch Set 1 #

Patch Set 2 : revert DUMP_* settings back to default (off) #

Patch Set 3 : remove unused fwd decl #

Patch Set 4 : create per-table stats on demand + fixes #

Patch Set 5 : switch dump defaults back to disabled #

Unified diffs Side-by-side diffs Delta from patch set Stats (+144 lines, -90 lines) Patch
M third_party/WebKit/Source/wtf/HashTable.h View 1 2 3 4 14 chunks +113 lines, -80 lines 0 comments Download
M third_party/WebKit/Source/wtf/HashTable.cpp View 1 2 3 2 chunks +31 lines, -10 lines 0 comments Download

Messages

Total messages: 39 (23 generated)
sof
please take a look. while investigating hash table behavior "in the wild", i discovered that ...
4 years, 1 month ago (2016-11-18 15:38:28 UTC) #8
haraken
LGTM
4 years, 1 month ago (2016-11-18 15:49:20 UTC) #9
haraken
On 2016/11/18 15:49:20, haraken wrote: > LGTM
4 years, 1 month ago (2016-11-18 15:49:35 UTC) #10
haraken
> while investigating hash table behavior "in the wild" Did you find anything interesting?
4 years, 1 month ago (2016-11-18 15:50:12 UTC) #11
sof
On 2016/11/18 15:50:12, haraken wrote: > > while investigating hash table behavior "in the wild" ...
4 years, 1 month ago (2016-11-18 16:14:14 UTC) #12
sof
The placement of the marking call for the stats table wasn't correct, so moved up ...
4 years, 1 month ago (2016-11-20 11:35:41 UTC) #21
haraken
LGTM
4 years, 1 month ago (2016-11-21 00:16:30 UTC) #24
Yuta Kitamura
lgtm
4 years, 1 month ago (2016-11-21 04:51:42 UTC) #25
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/2511983003/80001
4 years, 1 month ago (2016-11-21 06:13:04 UTC) #27
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/318961)
4 years, 1 month ago (2016-11-21 06:46:45 UTC) #29
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/2511983003/80001
4 years, 1 month ago (2016-11-21 06:49:38 UTC) #31
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 1 month ago (2016-11-21 08:09:47 UTC) #34
commit-bot: I haz the power
Patchset 5 (id:??) landed as https://crrev.com/1fc422b4d064b0123155fafe162f4f01d9f44df2 Cr-Commit-Position: refs/heads/master@{#433494}
4 years, 1 month ago (2016-11-21 08:12:01 UTC) #36
sof
On 2016/11/18 16:14:14, sof wrote: > On 2016/11/18 15:50:12, haraken wrote: > > > while ...
4 years, 1 month ago (2016-11-21 15:19:59 UTC) #37
haraken
On 2016/11/21 15:19:59, sof wrote: > On 2016/11/18 16:14:14, sof wrote: > > On 2016/11/18 ...
4 years, 1 month ago (2016-11-22 00:40:19 UTC) #38
sof
4 years, 1 month ago (2016-11-22 07:23:19 UTC) #39
Message was sent while issue was closed.
On 2016/11/22 00:40:19, haraken wrote:
> On 2016/11/21 15:19:59, sof wrote:
> > On 2016/11/18 16:14:14, sof wrote:
> > > On 2016/11/18 15:50:12, haraken wrote:
> > > > > while investigating hash table behavior "in the wild"
> > > > 
> > > > Did you find anything interesting?
> > > 
> > > Collision-wise, nothing interesting found yet (looking at LocalDOMWindow
> uses
> > > mostly.)
> > > 
> > > ( I've been meaning to take a closer look at rehashing etc for a busy
table
> > like
> > > the prefinalizer table for a while, but haven't done so. )
> > 
> > It isn't unusual to see a couple of rehashes of this table during a complete
> GC
> > cycle.
> > 
> > Prefinalizers seem to follow an "objects die young" lifetime pattern, so
> having
> > some form of "rehash disallowed scope" during their invocation or
> reconsidering
> > the representation of the registered prefinalizers, is possibly worth doing.
> In
> > the limited tests done, I didn't see table sizes exceeding 1k.
> 
> +1.
> 
> > (The support for explicit unregistration can arguably be dropped as that
> > flexibility hasn't proven to be useful in practice.)
> 
> Even if we don't have an explicit unregistration,
> m_orderedPreFinalizers.remove() in invokePreFinalizers() will cause the
> rehashing, right?

Yes, the only place where removals happen.

Powered by Google App Engine
This is Rietveld 408576698