Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3c4ce68180d4becf33d07a339540892983c47c93
      
https://github.com/WebKit/WebKit/commit/3c4ce68180d4becf33d07a339540892983c47c93
  Author: Nathan Solomon <[email protected]>
  Date:   2025-12-11 (Thu, 11 Dec 2025)

  Changed paths:
    M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
    M Source/WebCore/rendering/GlyphDisplayListCache.cpp
    M Source/WebCore/rendering/GlyphDisplayListCache.h

  Log Message:
  -----------
  Modify deduplication cache in GlyphDisplayListCache to improve 
~GlyphDisplayListCacheEntry performance
rdar://165895591
https://bugs.webkit.org/show_bug.cgi?id=303610

Reviewed by Kimmo Kinnunen.

The deduplication cache within the GlyphDisplayListCache used to share 
GlyphDisplayListCacheEntrys
has a large impact on SP3 performance. The cache has a hit rate of 26% in SP3, 
but it has a hit rate of 99% on MotionMark.
Removing the cache altogether significantly improves performance on SP3 by
reducing the entry removal work done in the destructor of 
GlyphDisplayListCacheEntry,
which is frequent in SP3.
In both benchmarks there is only a small working group
of reused GlyphDisplayListCacheEntrys. Taking advantage of this observation
and change the implementation of this cache to have a much smaller working set 
and remove the
need for manual removal of a GlyphDisplayListCacheEntry on 
GlyphDisplayListCacheEntry destruction.
This speeds up SP3 while maintaining the high cache hit rate seen in MotionMark.

* Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
* Source/WebCore/rendering/GlyphDisplayListCache.cpp:
(WebCore::GlyphDisplayListCacheKeyTranslator::equal):
(WebCore::GlyphDisplayListCache::getDisplayList):
(WebCore::GlyphDisplayListCacheEntry::~GlyphDisplayListCacheEntry): Deleted.
* Source/WebCore/rendering/GlyphDisplayListCache.h:
(WebCore::GlyphDisplayListCacheEntryHash::hash): Deleted.
(WebCore::GlyphDisplayListCacheEntryHash::equal): Deleted.

Canonical link: https://commits.webkit.org/304313@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to