To measure the impact of garbage collection on Blink memory cache and potential performance boost, we plan to keep strong references to loaded resources in the Blink memory cache. The change will serve as an estimation only project to collect data about the maximal cache hit rate with all resources available.
The change does not modify the behavior of web APIs
The four configurations will be launched on dev/canary. The combinations are: * The control group. No strong reference to resources. * Save strong references for all resources of all types for all the pages. * Save strong references for only script, fonts and stylesheets for all pages. * Save strong references for all resources for only one page. * Save strong references for only script, fonts and stylesheets for only one page. We will evaluate the following metrics under different configurations * Core web browsing metric (FCP/LCP etc) * Cache hit rate: Blink.MemoryCache.RevalidationPolicy * Memory footprint * Crash Rate
The feature is for experiment only. We do not expect to launch it to stable as it is. If the experiment provides positive results, we will move on to further refine the resource lifetime management strategy in Blink.
Contact emails
g...@google.comExplainer
https://docs.google.com/document/d/1jcdXkoFBbdxmp_EYIrrOJvEgYd0hGBAr4Nbno7KWnIs/edit?usp=sharingSpecification
The feature is not web-spec related.
Design docs
https://docs.google.com/document/d/1jcdXkoFBbdxmp_EYIrrOJvEgYd0hGBAr4Nbno7KWnIs/edit?usp=sharingSummary
To measure the impact of garbage collection on Blink memory cache and potential performance boost, we plan to keep strong references to loaded resources in the Blink memory cache. The change will serve as an estimation only project to collect data about the maximal cache hit rate with all resources available.
Blink component
Blink>LoaderTAG review
TAG review is not required since the experiment changes the internal behavior of renderer and is transparent to the websites and web developers.Risks
Interoperability and Compatibility
Resource reference lifetime does not affect the behavior of the browser. We do not expect there to be interoperability or compatibility issues.
Gecko: No signal
WebKit: No signal
Web developers: No signals
Other signals:WebView application risks
The change does not modify the behavior of web APIs
Goals for experimentation
The four configurations will be launched on dev/canary. The combinations are: * The control group. No strong reference to resources. * Save strong references for all resources of all types for all the pages. * Save strong references for only script, fonts and stylesheets for all pages. * Save strong references for all resources for only one page. * Save strong references for only script, fonts and stylesheets for only one page.
We will evaluate the following metrics under different configurations * Core web browsing metric (FCP/LCP etc) * Cache hit rate: Blink.MemoryCache.RevalidationPolicy
* Memory footprint * Crash Rate
Reason this experiment is being extended
Ongoing technical constraints
Debuggability
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
YesIs this feature fully tested by web-platform-tests?
No, resource reference lifetime in blink is invisible to the websites.Flag name
MemoryCacheStrongReference for the overall configuration. MemoryCacheStrongReferenceSingleUnload and MemoryCacheStrongReferenceFilterImages for sub configurationsRequires code in //chrome?
FalseTracking bug
https://crbug.com/1409349Estimated milestones
The feature is for experiment only. We do not expect to launch it to stable as it is. If the experiment provides positive results, we will move on to further refine the resource lifetime management strategy in Blink.
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5196823129489408This intent message was generated by Chrome Platform Status.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJQw1NwNzokqhvwtnrV-J-8BeMeRjfC-cvkXMBmZYK4Vej%3DX%2Bg%40mail.gmail.com.
Thanks for sending the intent and for experimenting with the MemoryCache!On Fri, Mar 17, 2023 at 7:08 PM 'Jiacheng Guo' via blink-dev <blin...@chromium.org> wrote:Contact emails
g...@google.comExplainer
https://docs.google.com/document/d/1jcdXkoFBbdxmp_EYIrrOJvEgYd0hGBAr4Nbno7KWnIs/edit?usp=sharingSpecification
The feature is not web-spec related.The situation as I remember it is a bit more complex than that :)I think the memory cache is defined for images, but not for other resource types.So if we end up changing the behavior for images, it'd be good to see if we can reflect that behavior change in the spec.And ideally, it'd be great if we're able to actually specify the behavior of the memory cache once we figure out where we want it to land, as I believe it is observable. (Through ResourceTiming, as well as timing in general).
What are the desired timelines for the experiments?
The design doc mentions only testing in dev and canary - do you
plan to eventually experiment in beta or stable?
Document
object's list of available images to another at any timeLGTM to experiment in canary/dev. For clarity, how long do you
plan to experiment?
(I don't think you need an LGTM in this case,
https://www.chromium.org/blink/launching-features/#origin-trials
mentions needing an LGTM to experiment on beta or stable - but
thanks for sending the intent!).
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJQw1NyVAiEdoNmFzMDR8_kg28uHB5ACJ8bfEBrf2c3Su3o3-g%40mail.gmail.com.