Title: [249266] releases/WebKitGTK/webkit-2.26/Source/WebCore
Revision
249266
Author
[email protected]
Date
2019-08-29 06:11:08 -0700 (Thu, 29 Aug 2019)

Log Message

Merge r249232 - PaintFrequencyTracker triggers too many calls to MonotonicTime::now() on layer painting
https://bugs.webkit.org/show_bug.cgi?id=201261

Reviewed by Zalan Bujtas.

MonotonicTime::now() shows up as expensive when painting layer-heavy content, because PaintFrequencyTracker
makes two calls per layer paint.

Halve the number of calls by storing m_lastPaintTime at the start of the paint; doing so doesn't substantially
change the behavior of the tracker.

* rendering/PaintFrequencyTracker.h:
(WebCore::PaintFrequencyTracker::begin):
(WebCore::PaintFrequencyTracker::end):

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.26/Source/WebCore/ChangeLog (249265 => 249266)


--- releases/WebKitGTK/webkit-2.26/Source/WebCore/ChangeLog	2019-08-29 13:11:06 UTC (rev 249265)
+++ releases/WebKitGTK/webkit-2.26/Source/WebCore/ChangeLog	2019-08-29 13:11:08 UTC (rev 249266)
@@ -1,3 +1,20 @@
+2019-08-28  Simon Fraser  <[email protected]>
+
+        PaintFrequencyTracker triggers too many calls to MonotonicTime::now() on layer painting
+        https://bugs.webkit.org/show_bug.cgi?id=201261
+
+        Reviewed by Zalan Bujtas.
+
+        MonotonicTime::now() shows up as expensive when painting layer-heavy content, because PaintFrequencyTracker
+        makes two calls per layer paint.
+
+        Halve the number of calls by storing m_lastPaintTime at the start of the paint; doing so doesn't substantially
+        change the behavior of the tracker.
+
+        * rendering/PaintFrequencyTracker.h:
+        (WebCore::PaintFrequencyTracker::begin):
+        (WebCore::PaintFrequencyTracker::end):
+
 2019-08-28  Ross Kirsling  <[email protected]>
 
         Unreviewed. Restabilize non-unified build.

Modified: releases/WebKitGTK/webkit-2.26/Source/WebCore/rendering/PaintFrequencyTracker.h (249265 => 249266)


--- releases/WebKitGTK/webkit-2.26/Source/WebCore/rendering/PaintFrequencyTracker.h	2019-08-29 13:11:06 UTC (rev 249265)
+++ releases/WebKitGTK/webkit-2.26/Source/WebCore/rendering/PaintFrequencyTracker.h	2019-08-29 13:11:08 UTC (rev 249266)
@@ -61,14 +61,15 @@
             //  - The frame rate to paint this renderer has been at least 31.25 FPS.
             m_paintFrequency = PaintFrequency::High;
         }
+
+        m_lastPaintTime = now;
+        ++m_totalPaints;
     }
 
     void end()
     {
-        m_lastPaintTime = MonotonicTime::now();
         ASSERT(m_firstPaintTime);
         ASSERT(m_firstPaintTime <= m_lastPaintTime);
-        ++m_totalPaints;
     }
 
     bool paintingFrequently() const { return m_paintFrequency == PaintFrequency::High; }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to