Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 2 users
Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment
Eliminate GC pauses in OORTonline
Project Member Reported by mlippautz@chromium.org, Jul 31 2015 Back to list
General tracking bug for progress in eliminating/reducing OORTonline (oortonline.gl) GC pauses.
 
Project Member Comment 1 by bugdroid1@chromium.org, Jul 31 2015
The following revision refers to this bug:
  http://src.chromium.org/viewvc/blink?view=rev&rev=199809

------------------------------------------------------------------
r199809 | mlippautz@chromium.org | 2015-07-31T09:43:39.265274Z

Changed paths:
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/IDLExtendedAttributes.txt?r1=199809&r2=199808&pathrev=199809
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/FlexibleArrayBufferView.h?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/webgl/WebGLRenderingContextBase.idl?r1=199809&r2=199808&pathrev=199809
   A http://src.chromium.org/viewvc/blink/trunk/Source/core/dom/TypedFlexibleArrayBufferView.h?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/core/core.gypi?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/webgl/WebGLRenderingContextBase.cpp?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8Uint8ClampedArray.h?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.cpp?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/scripts/v8_types.py?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestDictionary.cpp?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/modules/webgl/WebGLRenderingContextBase.h?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8TestObject.cpp?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/idls/core/TestObject.idl?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/UnionTypesCore.cpp?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/tests/results/core/V8DataView.h?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8Binding.h?r1=199809&r2=199808&pathrev=199809
   M http://src.chromium.org/viewvc/blink/trunk/Source/bindings/core/v8/V8BindingMacros.h?r1=199809&r2=199808&pathrev=199809

Introduce FlexibleArrayBufferView and TypedFlexibleArrayBufferView

Rebase and extension from https://codereview.chromium.org/1091543002/ by jl@.

The [FlexibleArrayBufferView] extended attribute, when used on a method
argument of type ArrayBufferView, causes the value to be processed and
passed to the implementation as the new C++ type FlexibleArrayBufferView
instead of as DOMArrayBufferView*.

A FlexibleArrayBufferView object will either contain a pointer to a
DOMArrayBufferView, or, if the array was small (without a materialized
buffer), a stack allocated buffer containing the contents of the array.

When used on a method argument of a typed array type (e.g. Float32Array)
causes the value to be processed and passed to the implementation as 
TypedFlexibleArrayBufferView instead of the corresponding DOM type.

A TypedFlexibleArrayBufferView extends FlexibleArrayBufferView with
the corresponding type methods for data and lengths.

OORT performance example (single run):
  "marksweep": {
    "count": 10, 
    "pause_min": 7.2, 
    "pause_max": 356.8, 
    "pause_avg": 94.5, 
    "pause_gt_10ms": 9
  }
   --- vs ---
  "marksweep": {
    "count": 6, 
    "pause_min": 7.5, 
    "pause_max": 148.0, 
    "pause_avg": 46.833333333333336, 
    "pause_gt_10ms": 5
  }



BUG= chromium:515795 

Review URL: https://codereview.chromium.org/1269443002
-----------------------------------------------------------------
Project Member Comment 2 by bugdroid1@chromium.org, Aug 5 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/1cb27bce6778ac9a168bf9ca371daa00e040620e

commit 1cb27bce6778ac9a168bf9ca371daa00e040620e
Author: mlippautz <mlippautz@chromium.org>
Date: Wed Aug 05 13:29:01 2015

[GC] Change behavior when reaching external allocation limit

With the recent changes to the incremental marking API we can now kick off
incremental marking while respecting callback flags.

Performance neutral for smoothness.image_decoding_cases on N9 (read: does not
crash) as long as we synchronously process phantom callbacks
(kGCCallbackFlagForced).

OORT single run:
  "marksweep": {
    "count": 5,
    "pause_min": 7.5,
    "pause_max": 158.8,
    "pause_avg": 97.52000000000001,
    "pause_gt_10ms": 4
  }
  --- vs ---
  "marksweep": {
    "count": 5,
    "pause_min": 16.2,
    "pause_max": 22.1,
    "pause_avg": 19.32,
    "pause_gt_10ms": 5
  }

The number of actual full GCs varies. The improvement manifests in reduced
maximum and average pauses.

BUG= chromium:515795 
LOG=N

Review URL: https://codereview.chromium.org/1271253002

Cr-Commit-Position: refs/heads/master@{#30028}

[modify] http://crrev.com/1cb27bce6778ac9a168bf9ca371daa00e040620e/src/api.cc
[modify] http://crrev.com/1cb27bce6778ac9a168bf9ca371daa00e040620e/src/flag-definitions.h

Project Member Comment 3 by bugdroid1@chromium.org, Aug 13 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/3aca47b7aa4bf2d9156d62b9d6bf27a6761890c9

commit 3aca47b7aa4bf2d9156d62b9d6bf27a6761890c9
Author: mlippautz <mlippautz@chromium.org>
Date: Thu Aug 13 17:22:47 2015

[api] Do not force external GCs when only trying to synchronously process phantom callbacks

Improves on aec8987b5ee55fa46b90b58927e957a4e5f19c09 by not forcing external GCs
(blink) through the GC epilogue callback.

BUG= chromium:515795 
LOG=N

Review URL: https://codereview.chromium.org/1287323002

Cr-Commit-Position: refs/heads/master@{#30164}

[modify] http://crrev.com/3aca47b7aa4bf2d9156d62b9d6bf27a6761890c9/include/v8.h
[modify] http://crrev.com/3aca47b7aa4bf2d9156d62b9d6bf27a6761890c9/src/api.cc
[modify] http://crrev.com/3aca47b7aa4bf2d9156d62b9d6bf27a6761890c9/src/global-handles.cc

Comment 4 Deleted
Comment 5 Deleted
Comment 6 Deleted
Project Member Comment 7 by sheriffbot@chromium.org, Jul 17 2016
Labels: Hotlist-OpenBugWithCL
A change has landed for this issue, but it's been open for over 6 months. Please review and close it if applicable. If this issue should remain open, remove the "Hotlist-OpenBugWithCL" label. If no action is taken, it will be archived in 30 days.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Fixed
Nothing is going to happen here for now. :)
Sign in to add a comment