|
|
Chromium Code Reviews
DescriptionOut-of-line WTF::String's destructor.
This saves ~504KB in the official Linux x64 binary.
BUG=none
Committed: https://crrev.com/2ce3d703c50150ebe5cd6c3f1e2bf4a19f590766
Cr-Commit-Position: refs/heads/master@{#433737}
Patch Set 1 #
Total comments: 2
Patch Set 2 : Move and copy #
Messages
Total messages: 32 (21 generated)
dcheng@chromium.org changed reviewers: + esprehn@chromium.org
The CQ bit was checked by dcheng@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_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by dcheng@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_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by dcheng@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_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Can we do StringImpl instead? I'd rather not mess with String, I assume the bloat is coming from the stuff inside ref and deref on the Impl?
On 2016/11/20 20:44:27, esprehn wrote:
> Can we do StringImpl instead? I'd rather not mess with String, I assume the
> bloat is coming from the stuff inside ref and deref on the Impl?
Unfortunately, it's largely from String's destructor itself:
Count Bytes Name
-------- --------- ---------------------------------
34500 972306 WTF::RefPtr<WTF::StringImpl>::~RefPtr()
31576 898555 WTF::String::~String()
34630 843076 void
WTF::derefIfNotNull<WTF::StringImpl>(WTF::StringImpl*)
(Note there's some double-counting here: a large portion of the
~RefPtr<StringImpl> bytes should be attributed to ~String, but I haven't fixed
that part of the tool yet.)
StringImpl's destructor is already defined out-of-line: despite the fact that
it's annotated with inline, the compiler doesn't appear to be inlining it
already.
mikhail.pozdnyakov@intel.com changed reviewers: + mikhail.pozdnyakov@intel.com
https://codereview.chromium.org/2516123002/diff/1/third_party/WebKit/Source/w... File third_party/WebKit/Source/wtf/text/WTFString.h (right): https://codereview.chromium.org/2516123002/diff/1/third_party/WebKit/Source/w... third_party/WebKit/Source/wtf/text/WTFString.h:102: ~String(); This will remove implicitly-declared move constructor, so this change should be accompanied with introducing of explicit move semantics to WTF::String.
The CQ bit was checked by dcheng@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: This issue passed the CQ dry run.
https://codereview.chromium.org/2516123002/diff/1/third_party/WebKit/Source/w... File third_party/WebKit/Source/wtf/text/WTFString.h (right): https://codereview.chromium.org/2516123002/diff/1/third_party/WebKit/Source/w... third_party/WebKit/Source/wtf/text/WTFString.h:102: ~String(); On 2016/11/21 06:51:02, Mikhail wrote: > This will remove implicitly-declared move constructor, so this change should be > accompanied with introducing of explicit move semantics to WTF::String. Ah, good catch. I was wondering about the ASAN failures. Done.
Do you want to change AtomicString too? I do worry this is going to be bad for performance, especially inside some loops, but lets give it a shot. lgtm
On 2016/11/22 01:41:11, esprehn wrote: > Do you want to change AtomicString too? Let's see how this goes first =) > > I do worry this is going to be bad for performance, especially inside some > loops, but lets give it a shot. I'm a bit concerned as well, so I'd like to see how this goes before extending it further: there are a couple other String() things that could be inlined, and it might be nice to separate them out in case some of them do affect performance negatively (or positively). > > lgtm
The CQ bit was checked by dcheng@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": 1479779252371060,
"parent_rev": "f2d77f028bad51f29d2d011b298190edac5b2e31", "commit_rev":
"ea3362bf961fd44824bdf9b8acac8a8e5c553398"}
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Out-of-line WTF::String's destructor. This saves ~504KB in the official Linux x64 binary. BUG=none ========== to ========== Out-of-line WTF::String's destructor. This saves ~504KB in the official Linux x64 binary. BUG=none Committed: https://crrev.com/2ce3d703c50150ebe5cd6c3f1e2bf4a19f590766 Cr-Commit-Position: refs/heads/master@{#433737} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/2ce3d703c50150ebe5cd6c3f1e2bf4a19f590766 Cr-Commit-Position: refs/heads/master@{#433737}
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:20001) has been created in https://codereview.chromium.org/2522243003/ by dcheng@chromium.org. The reason for reverting is: 10.7% regression in blink_perf.dom =(. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
