|
|
Created:
4 years, 7 months ago by ulan Modified:
4 years, 7 months ago CC:
blink-reviews, blink-reviews-bindings_chromium.org, chromium-reviews, dominicc (has gone to gerrit) Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionUse a new type of weak phantom handle for ScriptWrappable.
The new phantom handle does not require a callback and is reset
automatically by the garbage collector.
Since we do not have finalization callback anymore, we account for the
freed wrappers in GC epilogue by using a new V8 API function.
This drastically reduces time spent in callback handling
phases of V8 GC on v8.infinite_scroll benchmark.
See the related CL in V8 for more motivation and results:
https://codereview.chromium.org/1950963002
BUG=608333
Committed: https://crrev.com/b19982c4431d0e8994b74992727e05cfb2e4ce37
Cr-Commit-Position: refs/heads/master@{#392613}
Patch Set 1 #
Total comments: 2
Patch Set 2 : Unindent #
Total comments: 2
Messages
Total messages: 21 (10 generated)
Description was changed from ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. See the related CL in V8: https://codereview.chromium.org/1950963002 BUG=608333 ========== to ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. This drastically reduce time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. See the related CL in V8: https://codereview.chromium.org/1950963002 BUG=608333 ==========
Description was changed from ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. This drastically reduce time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. See the related CL in V8: https://codereview.chromium.org/1950963002 BUG=608333 ========== to ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 ==========
Description was changed from ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 ========== to ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 ==========
ulan@chromium.org changed reviewers: + haraken@chromium.org, jochen@chromium.org
ptal
Thanks for working on this! LGTM. https://codereview.chromium.org/1944363002/diff/1/third_party/WebKit/Source/b... File third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp (right): https://codereview.chromium.org/1944363002/diff/1/third_party/WebKit/Source/b... third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp:320: void UpdateCollectedPhantomHandles(v8::Isolate* isolate) Nit: No indentation.
Thanks for reviewing so quickly. https://codereview.chromium.org/1944363002/diff/1/third_party/WebKit/Source/b... File third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp (right): https://codereview.chromium.org/1944363002/diff/1/third_party/WebKit/Source/b... third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp:320: void UpdateCollectedPhantomHandles(v8::Isolate* isolate) On 2016/05/04 14:10:34, haraken wrote: > > Nit: No indentation. Done.
lgtm
The CQ bit was checked by ulan@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from haraken@chromium.org Link to the patchset: https://codereview.chromium.org/1944363002/#ps20001 (title: "Unindent")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1944363002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1944363002/20001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: mac_chromium_rel_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by ulan@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1944363002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1944363002/20001
Message was sent while issue was closed.
Description was changed from ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 ========== to ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 ========== to ========== Use a new type of weak phantom handle for ScriptWrappable. The new phantom handle does not require a callback and is reset automatically by the garbage collector. Since we do not have finalization callback anymore, we account for the freed wrappers in GC epilogue by using a new V8 API function. This drastically reduces time spent in callback handling phases of V8 GC on v8.infinite_scroll benchmark. See the related CL in V8 for more motivation and results: https://codereview.chromium.org/1950963002 BUG=608333 Committed: https://crrev.com/b19982c4431d0e8994b74992727e05cfb2e4ce37 Cr-Commit-Position: refs/heads/master@{#392613} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/b19982c4431d0e8994b74992727e05cfb2e4ce37 Cr-Commit-Position: refs/heads/master@{#392613}
Message was sent while issue was closed.
https://codereview.chromium.org/1944363002/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp (right): https://codereview.chromium.org/1944363002/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp:324: heapStats.decreaseWrapperCount(count); Does this mean that phantom handles should *only* be used for wrappers, once per wrapper?
Message was sent while issue was closed.
https://codereview.chromium.org/1944363002/diff/20001/third_party/WebKit/Sour... File third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp (right): https://codereview.chromium.org/1944363002/diff/20001/third_party/WebKit/Sour... third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp:324: heapStats.decreaseWrapperCount(count); On 2016/05/11 03:38:30, dominicc wrote: > Does this mean that phantom handles should *only* be used for wrappers, once per > wrapper? Not really. heapStats.decreaseWrapperCount is just used as a hint to trigger Oilpan's GCs, so the counter doesn't need to be very accurate. heapStats.decreaseWrapperCount counts the number of V8 things that will have references to Oilpan's objects. |