Title: [279084] trunk/Source/WebCore
- Revision
- 279084
- Author
- cdu...@apple.com
- Date
- 2021-06-21 14:36:27 -0700 (Mon, 21 Jun 2021)
Log Message
Too much CPU time is spent under MemoryPressureHandler::currentMemoryUsagePolicy()
https://bugs.webkit.org/show_bug.cgi?id=227001
Reviewed by Simon Fraser.
Make it so that RenderLayerCompositor::updateCompositingPolicy() queries MemoryPressureHandler::currentMemoryUsagePolicy()
at most once every 2 seconds given that the call is expensive. It can currently get called several times a second and
shows on CPU profiles.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingPolicy):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (279083 => 279084)
--- trunk/Source/WebCore/ChangeLog 2021-06-21 21:25:45 UTC (rev 279083)
+++ trunk/Source/WebCore/ChangeLog 2021-06-21 21:36:27 UTC (rev 279084)
@@ -1,3 +1,17 @@
+2021-06-21 Chris Dumez <cdu...@apple.com>
+
+ Too much CPU time is spent under MemoryPressureHandler::currentMemoryUsagePolicy()
+ https://bugs.webkit.org/show_bug.cgi?id=227001
+
+ Reviewed by Simon Fraser.
+
+ Make it so that RenderLayerCompositor::updateCompositingPolicy() queries MemoryPressureHandler::currentMemoryUsagePolicy()
+ at most once every 2 seconds given that the call is expensive. It can currently get called several times a second and
+ shows on CPU profiles.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateCompositingPolicy):
+
2021-06-21 Megan Gardner <megan_gard...@apple.com>
AppHighlights disappear on page reload
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (279083 => 279084)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2021-06-21 21:25:45 UTC (rev 279083)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2021-06-21 21:36:27 UTC (rev 279084)
@@ -485,8 +485,16 @@
return m_compositingPolicy != currentPolicy;
}
- auto memoryPolicy = MemoryPressureHandler::currentMemoryUsagePolicy();
- m_compositingPolicy = memoryPolicy == WTF::MemoryUsagePolicy::Unrestricted ? CompositingPolicy::Normal : CompositingPolicy::Conservative;
+ static auto cachedMemoryPolicy = WTF::MemoryUsagePolicy::Unrestricted;
+ static MonotonicTime cachedMemoryPolicyTime;
+ static constexpr auto memoryPolicyCachingDuration = 2_s;
+ auto now = MonotonicTime::now();
+ if (now - cachedMemoryPolicyTime > memoryPolicyCachingDuration) {
+ cachedMemoryPolicy = MemoryPressureHandler::currentMemoryUsagePolicy();
+ cachedMemoryPolicyTime = now;
+ }
+
+ m_compositingPolicy = cachedMemoryPolicy == WTF::MemoryUsagePolicy::Unrestricted ? CompositingPolicy::Normal : CompositingPolicy::Conservative;
return m_compositingPolicy != currentPolicy;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes