Bug 186735 - HTTPHeaderMap wastes 226KB of HashTable capacity on cnn.com
Summary: HTTPHeaderMap wastes 226KB of HashTable capacity on cnn.com
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Page Loading (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-06-16 12:30 PDT by Simon Fraser (smfr)
Modified: 2018-06-19 10:10 PDT (History)
13 users (show)

See Also:


Attachments
Patch (24.84 KB, patch)
2018-06-18 19:23 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (25.59 KB, patch)
2018-06-18 20:02 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (30.93 KB, patch)
2018-06-18 20:28 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews204 for win-future (12.76 MB, application/zip)
2018-06-18 23:00 PDT, EWS Watchlist
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2018-06-16 12:30:45 PDT
Using tooling from bug 186698, loading can and running "notifyutil -p com.apple.WebKit.dumpHashTableCapacity" shows:

Wasted capacity: 117504 bytes (used 50816 of 168320 bytes, utilization: 30.19%) - 312 allocations
1   0x105db209d WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> >::HashTable(WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> > const&)
2   0x106550267 WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> >::operator=(WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> > const&)
3   0x1065501df WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::operator=(WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> > const&)
4   0x10654fb3f WebCore::HTTPHeaderMap::operator=(WebCore::HTTPHeaderMap const&)
5   0x10654f8d7 WebCore::ResourceResponseBase::operator=(WebCore::ResourceResponseBase const&)
6   0x106547177 WebCore::ResourceResponse::operator=(WebCore::ResourceResponse const&)
7   0x107f9cf12 WebCore::CachedResource::setResponse(WebCore::ResourceResponse const&)
8   0x107f98b2f WebCore::CachedResource::responseReceived(WebCore::ResourceResponse const&)
Comment 1 Simon Fraser (smfr) 2018-06-16 12:31:16 PDT
Also:

Wasted capacity: 109024 bytes (used 47264 of 156288 bytes, utilization: 30.24%) - 444 allocations
1   0x105db209d WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> >::HashTable(WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> > const&)
2   0x105db206d WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::HashMap(WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> > const&)
3   0x105db200d WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::HashMap(WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> > const&)
4   0x105db1faf WebCore::HTTPHeaderMap::HTTPHeaderMap(WebCore::HTTPHeaderMap const&)
5   0x105db1f1d WebCore::HTTPHeaderMap::HTTPHeaderMap(WebCore::HTTPHeaderMap const&)
6   0x106c75dc0 WebCore::ResourceResponseBase::ResourceResponseBase(WebCore::ResourceResponseBase const&)
7   0x106c75ca7 WebCore::ResourceResponse::ResourceResponse(WebCore::ResourceResponse const&)
8   0x106c6b4bd WebCore::ResourceResponse::ResourceResponse(WebCore::ResourceResponse const&)
Comment 2 Radar WebKit Bug Importer 2018-06-16 12:31:47 PDT
<rdar://problem/41189164>
Comment 3 Simon Fraser (smfr) 2018-06-16 12:33:30 PDT
Also this code path:

Wasted capacity: 82800 bytes (used 17680 of 100480 bytes, utilization: 17.60%) - 782 allocations
1   0x105db209d WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> >::HashTable(WTF::HashTable<WebCore::HTTPHeaderName, WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::HTTPHeaderName, WTF::String> >, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::KeyValuePairTraits, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName> > const&)
2   0x105db206d WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::HashMap(WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> > const&)
3   0x105db200d WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> >::HashMap(WTF::HashMap<WebCore::HTTPHeaderName, WTF::String, WTF::IntHash<WebCore::HTTPHeaderName>, WTF::StrongEnumHashTraits<WebCore::HTTPHeaderName>, WTF::HashTraits<WTF::String> > const&)
4   0x105db1faf WebCore::HTTPHeaderMap::HTTPHeaderMap(WebCore::HTTPHeaderMap const&)
5   0x105db1f1d WebCore::HTTPHeaderMap::HTTPHeaderMap(WebCore::HTTPHeaderMap const&)
6   0x105db1ca0 WebCore::ResourceRequestBase::ResourceRequestBase(WebCore::ResourceRequestBase const&)
7   0x105db1baf WebCore::ResourceRequest::ResourceRequest(WebCore::ResourceRequest const&)
8   0x105db11bd WebCore::ResourceRequest::ResourceRequest(WebCore::ResourceRequest const&)
Comment 4 Chris Dumez 2018-06-18 19:23:29 PDT
Created attachment 343008 [details]
Patch
Comment 5 Chris Dumez 2018-06-18 20:02:24 PDT
Created attachment 343011 [details]
Patch
Comment 6 Chris Dumez 2018-06-18 20:28:19 PDT
Created attachment 343013 [details]
Patch
Comment 7 EWS Watchlist 2018-06-18 23:00:31 PDT
Comment on attachment 343013 [details]
Patch

Attachment 343013 [details] did not pass win-ews (win):
Output: http://webkit-queues.webkit.org/results/8242574

New failing tests:
http/tests/security/canvas-remote-read-remote-video-localhost.html
Comment 8 EWS Watchlist 2018-06-18 23:00:44 PDT
Created attachment 343023 [details]
Archive of layout-test-results from ews204 for win-future

The attached test failures were seen while running run-webkit-tests on the win-ews.
Bot: ews204  Port: win-future  Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Comment 9 Chris Dumez 2018-06-19 08:29:33 PDT
Comment on attachment 343023 [details]
Archive of layout-test-results from ews204 for win-future

Failure seems unrelated.
Comment 10 Geoffrey Garen 2018-06-19 09:43:11 PDT
Comment on attachment 343013 [details]
Patch

r=me
Comment 11 WebKit Commit Bot 2018-06-19 10:10:39 PDT
Comment on attachment 343013 [details]
Patch

Clearing flags on attachment: 343013

Committed r232964: <https://trac.webkit.org/changeset/232964>
Comment 12 WebKit Commit Bot 2018-06-19 10:10:42 PDT
All reviewed patches have been landed.  Closing bug.