|
|
DescriptionAvoid a separate heap allocation for DOMWrapperMap.
DOMDataStore holds a pointer to a separately allocated DOMWrapperMap (which
itself contains a HashMap with a reference to the actual hashtable). This
reduces the number of heap allocations (and pointers to follow to manage
non-main-world wrappers) by one.
Review-Url: https://codereview.chromium.org/2742553002
Cr-Commit-Position: refs/heads/master@{#455742}
Committed: https://chromium.googlesource.com/chromium/src/+/e42b6912ec7a355b4575435a21e618e7aa277e42
Patch Set 1 #Patch Set 2 : Merge branch 'master' into dom-data-store-no-separate-alloc #Messages
Total messages: 18 (13 generated)
The CQ bit was checked by jbroman@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_...) linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_compile_dbg_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_tsan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...) mac_chromium_compile_dbg_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_comp...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
jbroman@chromium.org changed reviewers: + haraken@chromium.org
I don't have evidence that our pointer chain is super expensive, but this particular one is really easy to remove. At present, a lookup in a non-main-world DOMDataStore follows these pointers (to objects in separate heap allocations) v8::Isolate --> v8::Context --> ScriptState --> DOMWrapperWorld --> DOMDataStore --> DOMWrapperMap --> WTF::HashTable buffer This removes one of those 6 pointer indirections, by optionally allocating the DOMWrapperMap inside the DOMDataStore. (One more could probably be removed fairly easily, if we were motivated to do so.)
The CQ bit was checked by jbroman@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
yukishiino@chromium.org changed reviewers: + yukishiino@chromium.org
LGTM.
LGTM
The CQ bit was checked by jbroman@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 20001, "attempt_start_ts": 1489067308862100, "parent_rev": "4f29cf63eb78c4bd361ce7a10584e0b6f2fbdb28", "commit_rev": "e42b6912ec7a355b4575435a21e618e7aa277e42"}
Message was sent while issue was closed.
Description was changed from ========== Avoid a separate heap allocation for DOMWrapperMap. DOMDataStore holds a pointer to a separately allocated DOMWrapperMap (which itself contains a HashMap with a reference to the actual hashtable). This reduces the number of heap allocations (and pointers to follow to manage non-main-world wrappers) by one. ========== to ========== Avoid a separate heap allocation for DOMWrapperMap. DOMDataStore holds a pointer to a separately allocated DOMWrapperMap (which itself contains a HashMap with a reference to the actual hashtable). This reduces the number of heap allocations (and pointers to follow to manage non-main-world wrappers) by one. Review-Url: https://codereview.chromium.org/2742553002 Cr-Commit-Position: refs/heads/master@{#455742} Committed: https://chromium.googlesource.com/chromium/src/+/e42b6912ec7a355b4575435a21e6... ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as https://chromium.googlesource.com/chromium/src/+/e42b6912ec7a355b4575435a21e6... |