| Index: third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
|
| index 33706f34ec352f76b4961e5cd93103e57edc30cb..58afc19960382a6c0a7e678a06301bd449a07193 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
|
| @@ -121,9 +121,19 @@ public:
|
| // Practically speaking, as far as I crawled real web applications,
|
| // the number of wrappers handled by each minor GC cycle is at most 3000.
|
| // So this limit is mainly for pathological micro benchmarks.
|
| + //
|
| + // In Oilpan, we don't limit the number of wrappers to collect as many
|
| + // wrappers in minor GC cycles as possible. This may increase the pause
|
| + // time of a minor GC, but if we give up collecting wrappers in a minor
|
| + // GC, it will instead end up with increasing the cost of subsequent
|
| + // Oilpan's GCs. Thus it will be better to collect as many wrappers as
|
| + // possible for minimizing the value of max(a pause time of a minor GC,
|
| + // a pause time of Oilpan's GC).
|
| +#if !ENABLE(OILPAN)
|
| const unsigned wrappersHandledByEachMinorGC = 10000;
|
| if (m_nodesInNewSpace.size() >= wrappersHandledByEachMinorGC)
|
| return;
|
| +#endif
|
|
|
| v8::Local<v8::Object> wrapper = v8::Local<v8::Object>::New(m_isolate, v8::Persistent<v8::Object>::Cast(*value));
|
| ASSERT(V8DOMWrapper::hasInternalFieldsSet(wrapper));
|
|
|