Index: third_party/WebKit/Source/core/dom/StyleEngine.cpp |
diff --git a/third_party/WebKit/Source/core/dom/StyleEngine.cpp b/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
index 911f80a8e9fae0bf945bcae6ae0992cfaf416e35..0588074be6a2cf90f442f116cdf653d485fd46d0 100644 |
--- a/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
+++ b/third_party/WebKit/Source/core/dom/StyleEngine.cpp |
@@ -427,6 +427,15 @@ void StyleEngine::clearResolver() |
if (m_resolver) { |
TRACE_EVENT1("blink", "StyleEngine::clearResolver", "frame", document().frame()); |
+#if ENABLE(OILPAN) |
+ // The StyleResolver is a heavy object having a number of collection objects |
+ // attached. Attempt to promptly recycle their backing storage objects which |
+ // are on the Oilpan collection heaps, so as to increase the chance of |
+ // heap storage reuse without having to involve the Oilpan GC. Helpful for |
+ // workloads that stresses (re)creation of StyleResolvers and/or have high |
+ // allocation rates. |
+ m_resolver->dispose(); |
+#endif |
m_resolver.clear(); |
} |
} |