- 22 Jun, 2020 1 commit
-
-
Ulan Degenbaev authored
Chrome may send memory measurement requests to multiple renderer processes at the same time. This may lead to multiple GC happening at the same time if the processes are idle. Randomization spreads out the GCs over time to reduce the load on the system. Bug: chromium:1049093 Change-Id: I5aa67fb07f8a55d0ba769bf823168b35cb3c23cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2208861 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68472}
-
- 06 Mar, 2020 1 commit
-
-
Ulan Degenbaev authored
This adds two new histograms: - V8.MeasureMemoryDelayMilliseconds measures how long it takes to serve a memory measurement request - V8.GCFinalizeMCMeasureMemory is a variant of the existing GC pause histogram that used when GC runs in memory measurement mode. Additionally this CL lowers the maximum measurement delay to 10 seconds. Bug: chromium:1049093 Change-Id: I97cbf443da514a69d6cf8c1d74d2757098e60acd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089937Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66606}
-
- 07 Feb, 2020 1 commit
-
-
Bill Ticehurst authored
Change-Id: I47c9211274cefd26bde6bd93aa7503e022df4357 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2042874Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Bill Ticehurst <billti@microsoft.com> Cr-Commit-Position: refs/heads/master@{#66179}
-
- 29 Jan, 2020 1 commit
-
-
Ulan Degenbaev authored
The existing legacy performance.memory API accounts external string and array buffer backing store bytes. This CL adds per-context tracking of external bytes Bug: chromium:973627 Change-Id: I2b308dc540454e7b0b66406b83a18bf8f8d55d8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2025369Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66018}
-
- 19 Jan, 2020 1 commit
-
-
Ulan Degenbaev authored
This adds a new API function that can be customized by the embedder by providing a delegate that defines contexts to be measured and reports the results to JS. A memory measurement request is carried out as follows: 1) MeasureMemory(delegate) invocation enqueues a new request in MemoryMeasurement::received_ and schedules a delayed GC task. 2) At the start of the next GC (that is triggered either by the GC schedule or by the delayed task) each request in received_ moves to processing_. Per-context marking worklists are created for each native context that was selected by the delegates (using the ShouldMeasure predicate). 3) At the end of the GC the sizes of the native contexts are recorded for each request in processing_. The requests move to the done_ list and result reporting task is scheduled. 4) When the result reporting task runs it invokes the MeasurementComplete function of each delegate in done_. Bug: chromium:973627 Change-Id: I0254cae693c5b8fab7c85a9eca0a3a128210b6c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981493 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#65856}
-
- 13 Jan, 2020 1 commit
-
-
Ulan Degenbaev authored
This adds inference for general JSObjects to NativeContextInferrer in the case when the object is going to be attributed to the shard context. Bug: chromium:973627 Change-Id: I393e8dd16a1f8b615fb2f8dceb52f543bae33554 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1997133Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#65736}
-
- 09 Jan, 2020 1 commit
-
-
Ulan Degenbaev authored
This changes the marking worklist draining for the main thread marker and the concurrent marker to use the following algorithm in per-context mode: 1) Pop an object from the marking worklist. 2) Try to infer the native context that owns the objects. This is done using a new NativeContextInferrer class. 3) If the inference is successful, then change the active marking worklist to the worklist of the inferred native context. 4) Otherwise, keep the current active marking worklist. 5) Visit the object. Newly discovered objects will be pushed onto the active marking worklist. 6) Account the object size for the native context corresponding to the active marking worklist. This is done using a new NativeContextStats class. The main property of the algorithm is that each object for which we couldn't infer the native context is either attributed to the native context retaining it or is not attributed to any native context. Bug: chromium:973627 Change-Id: Ide4ab992275d115279f971d89ace657f4c05e176 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1981491 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#65663}
-
- 11 Sep, 2019 1 commit
-
-
Ulan Degenbaev authored
This adds a new API function and provides a simple implementation of performance.measureMemory() in d8. The implementation currently immediately resolves the result promise with the current heap size. Bug: chromium:973627 Change-Id: Ia8e1963a49b7df628b5487a2c0d601473f0cb039 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1796502 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63694}
-