There is still noticiable rooting cost in doxbee-promise
Categories
(Core :: JavaScript Engine, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox149 | --- | fixed |
People
(Reporter: mgaudet, Assigned: mgaudet)
References
(Blocks 2 open bugs)
Details
Attachments
(13 files)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Visible in this recent profile: https://share.firefox.dev/3Nj3nDx
We can get rid of some of this by using RootedTuple/RootedField.
| Assignee | ||
Updated•7 months ago
|
| Assignee | ||
Updated•7 months ago
|
| Assignee | ||
Comment 1•7 months ago
|
||
Reworking that profile you can spot a bunch more opportunities, so I'm resummarying this bug and taking it.
I've got a stack that I locally measure at a 1.5-2% improvement just from adjusting rooting.
| Assignee | ||
Comment 2•7 months ago
|
||
| Assignee | ||
Comment 3•7 months ago
|
||
| Assignee | ||
Comment 4•7 months ago
|
||
| Assignee | ||
Comment 5•7 months ago
|
||
| Assignee | ||
Comment 6•7 months ago
|
||
Used in the next patch in the stack to handle a conversion from
RootedField<PromiseObject*> to Handle<JSObject*>
| Assignee | ||
Comment 7•7 months ago
|
||
| Assignee | ||
Comment 8•7 months ago
|
||
| Assignee | ||
Comment 9•7 months ago
|
||
| Assignee | ||
Comment 10•7 months ago
|
||
| Assignee | ||
Comment 11•7 months ago
|
||
| Assignee | ||
Comment 12•7 months ago
|
||
| Assignee | ||
Comment 13•7 months ago
|
||
Updated•7 months ago
|
| Assignee | ||
Comment 14•7 months ago
|
||
Otherwise translation to RootedField can be a refactoring hazard. Consider
RootedTuple<JSObject*> roots(cx);
for (x : container) {
RootedField<JSObject*, 0> field(roots);
if (x.condition) {
field = x.obj;
}
if (field && x.condition_two) {
do_thing(field);
}
}
In this loop, without re-initializing field, we can leak obj from a previous
iteration to a new one.
Comment 15•7 months ago
|
||
Comment 16•7 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/f2b4c61c9966
https://hg.mozilla.org/mozilla-central/rev/21bd49d8d0f6
https://hg.mozilla.org/mozilla-central/rev/6111673a2fa1
https://hg.mozilla.org/mozilla-central/rev/1a3959df8ee5
https://hg.mozilla.org/mozilla-central/rev/2bd3be20e763
https://hg.mozilla.org/mozilla-central/rev/6a5705563ff8
https://hg.mozilla.org/mozilla-central/rev/bba9e03de600
https://hg.mozilla.org/mozilla-central/rev/2fb554957418
https://hg.mozilla.org/mozilla-central/rev/add9353df378
https://hg.mozilla.org/mozilla-central/rev/c63165bb96b3
https://hg.mozilla.org/mozilla-central/rev/b56a322991f0
https://hg.mozilla.org/mozilla-central/rev/be31b687694c
https://hg.mozilla.org/mozilla-central/rev/2e741a895ef5
Updated•6 months ago
|
Description
•