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

Issue 141743010: Use a StringImpl* instead of an AtomicString for NodeListAtomicNameCacheMap's key (Closed)

Created:
6 years, 10 months ago by Inactive
Modified:
6 years, 10 months ago
CC:
blink-reviews, dglazkov+blink, sof, eae+blinkwatch, adamk+blink_chromium.org
Visibility:
Public.

Description

Use a StringImpl* instead of an AtomicString for NodeListAtomicNameCacheMap's key Use a StringImpl* instead of an AtomicString for NodeListAtomicNameCacheMap's key. This results in slightly better performance, mainly by avoiding refcounting churn on the StringImpl. This improves Dromaeo's dom-attr test score by ~5.5% on my Linux desktop. When profiling Dromaeo's dom-attr, I noticed that NodeListsNodeData::invalidateCaches() was hot (6.7% of time spent), this patch makes it go down to 5.0%. This patch minimizes the performance regression caused by r166263, which made getElementsByTagName() return an HTMLCollection instead of a NodeList. According to the profiler, the performance impact is mainly due to node lists invalidation, which is now occuring more frequently because HTMLCollection has an id/name cache and therefore needs to be invalidated on id/name attribute change. R=abarth, adamk BUG=340325 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=166796

Patch Set 1 #

Total comments: 3

Patch Set 2 : Add comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+14 lines, -3 lines) Patch
M Source/core/dom/NodeRareData.h View 1 2 chunks +14 lines, -3 lines 0 comments Download

Messages

Total messages: 21 (0 generated)
Inactive
6 years, 10 months ago (2014-02-09 03:37:41 UTC) #1
abarth-chromium
6 years, 10 months ago (2014-02-09 03:44:57 UTC) #2
abarth-chromium
https://codereview.chromium.org/141743010/diff/1/Source/core/dom/NodeRareData.h File Source/core/dom/NodeRareData.h (right): https://codereview.chromium.org/141743010/diff/1/Source/core/dom/NodeRareData.h#newcode242 Source/core/dom/NodeRareData.h:242: return std::pair<unsigned char, StringImpl*>(type, name.impl()); Why is this memory ...
6 years, 10 months ago (2014-02-09 03:46:27 UTC) #3
Inactive
https://codereview.chromium.org/141743010/diff/1/Source/core/dom/NodeRareData.h File Source/core/dom/NodeRareData.h (right): https://codereview.chromium.org/141743010/diff/1/Source/core/dom/NodeRareData.h#newcode242 Source/core/dom/NodeRareData.h:242: return std::pair<unsigned char, StringImpl*>(type, name.impl()); On 2014/02/09 03:46:27, abarth ...
6 years, 10 months ago (2014-02-09 14:06:53 UTC) #4
Inactive
https://codereview.chromium.org/141743010/diff/1/Source/core/dom/NodeRareData.h File Source/core/dom/NodeRareData.h (right): https://codereview.chromium.org/141743010/diff/1/Source/core/dom/NodeRareData.h#newcode242 Source/core/dom/NodeRareData.h:242: return std::pair<unsigned char, StringImpl*>(type, name.impl()); On 2014/02/09 14:06:54, Chris ...
6 years, 10 months ago (2014-02-09 14:28:01 UTC) #5
Inactive
Here is the diff on the generated asm code from invalidateCaches: http://pastebin.com/3Zw9UQMw As you can ...
6 years, 10 months ago (2014-02-09 15:23:28 UTC) #6
abarth-chromium
LGTM. Please add a comment that explains the lifetime. BTW, it's not safe to use ...
6 years, 10 months ago (2014-02-09 16:55:17 UTC) #7
Inactive
On 2014/02/09 16:55:17, abarth wrote: > LGTM. Please add a comment that explains the lifetime. ...
6 years, 10 months ago (2014-02-09 17:14:03 UTC) #8
Inactive
On 2014/02/09 16:55:17, abarth wrote: > LGTM. Please add a comment that explains the lifetime. ...
6 years, 10 months ago (2014-02-09 17:48:04 UTC) #9
abarth-chromium
lgtm
6 years, 10 months ago (2014-02-09 18:38:23 UTC) #10
Inactive
The CQ bit was checked by ch.dumez@samsung.com
6 years, 10 months ago (2014-02-09 18:47:18 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/ch.dumez@samsung.com/141743010/130001
6 years, 10 months ago (2014-02-09 18:47:33 UTC) #12
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 10 months ago (2014-02-09 20:28:02 UTC) #13
commit-bot: I haz the power
Retried try job too often on linux_blink_rel for step(s) webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_blink_rel&number=21125
6 years, 10 months ago (2014-02-09 20:28:03 UTC) #14
Inactive
The CQ bit was checked by ch.dumez@samsung.com
6 years, 10 months ago (2014-02-09 23:58:26 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/ch.dumez@samsung.com/141743010/130001
6 years, 10 months ago (2014-02-09 23:58:36 UTC) #16
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 10 months ago (2014-02-10 01:50:52 UTC) #17
commit-bot: I haz the power
Retried try job too often on win_blink_rel for step(s) webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_rel&number=26516
6 years, 10 months ago (2014-02-10 01:50:52 UTC) #18
Inactive
The CQ bit was checked by ch.dumez@samsung.com
6 years, 10 months ago (2014-02-10 02:01:54 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/ch.dumez@samsung.com/141743010/130001
6 years, 10 months ago (2014-02-10 02:02:03 UTC) #20
commit-bot: I haz the power
6 years, 10 months ago (2014-02-10 04:04:19 UTC) #21
Message was sent while issue was closed.
Change committed as 166796

Powered by Google App Engine
This is Rietveld 408576698