Bug 167324

Summary: Maintain ordering when doing speculative loads
Product: WebKit Reporter: Antti Koivisto <koivisto>
Component: Page LoadingAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: beidson, cdumez, cgarcia, commit-queue, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch cdumez: review+

Antti Koivisto
Reported 2017-01-23 14:26:30 PST
Currently we randomize the ordering of speculative loads because they are serialized as a hash map. It would be better to load in the same order as the requests were originally issued as that is likely to match the order the document needs them.
Attachments
patch (7.73 KB, patch)
2017-01-23 14:31 PST, Antti Koivisto
cdumez: review+
Antti Koivisto
Comment 1 2017-01-23 14:31:35 PST
Chris Dumez
Comment 2 2017-01-23 14:53:33 PST
Comment on attachment 299539 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=299539&action=review r=me > Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:109 > + Vector<SubresourceInfo> result; I think we should reserveInitialCapacity() and uncheckedAppend() since we know there will be at most subresourceLoads.size() items and the common case will be subresourceLoads.size() items. > Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:49 > + , m_requestHeaders(request.httpHeaderFields()) It is a bit unfortunate that we are now copying those HashMaps for transient resources too now. I hope this does not show on PLT.
Antti Koivisto
Comment 3 2017-01-23 17:39:00 PST
Darin Adler
Comment 4 2017-01-23 18:02:28 PST
Comment on attachment 299539 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=299539&action=review >> Source/WebKit2/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:109 >> + Vector<SubresourceInfo> result; > > I think we should reserveInitialCapacity() and uncheckedAppend() since we know there will be at most subresourceLoads.size() items and the common case will be subresourceLoads.size() items. The patch landed with a call to reserveCapacity/append, but reserveInitialCapacity/uncheckedAppend are more efficient.
Antti Koivisto
Comment 5 2017-01-23 21:36:58 PST
Oops!
Antti Koivisto
Comment 6 2017-01-23 22:03:30 PST
Radar WebKit Bug Importer
Comment 7 2017-02-01 06:02:02 PST
Note You need to log in before you can comment on or make changes to this bug.