-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CSS Rich Browsing Proposal #175
Comments
|
|
I'm not familiar with that library, but it looks like it's essentially stopping the timer after the next rAF is fired following the rAF callback which starts the timer? This isn't currently possible within the Speedometer framework, since we don't have the ability to perform async steps (and most likely won't within the version 3 timeframe, though we are definitely interested in developing this ability so we can test things like Workers). So if this is a requirement for the test we should look at this test as a potential addition for a future version. Though I wonder if it's possible to build a test with this content using a similar pattern to the NewsSite in #167 - for example having content get appended or toggling classes etc in a sync step. |
Yeah, we don't support this kind of async workload at the moment. Deferring this to v4 seems like the right course of action here. |
Thanks all for your great comments! Yes, the measurement of whole set of CSS animation frames depends on the async step in SP driver, which seems won’t be ready until SP4. We are updating the workload to adopt the measurement similar as NewsSite case mentioned by Brian. This is quite good because initial frame is measured, in particular if with rAF based async measurement (#173). The workload thus reflects web runtime’s responsiveness to user actions, when facing CSS heavy and animation rich scenarios in real world like Netflix and Amazon etc. The animations we use are based on statistics from chromestatus, which mentioned that animations are utilized by more than 40% webpages. Again, thanks for the comments and we’ll soon have a new update and welcome your further insights to it! |
We have integrated CSS rich workload into SP3. You can review the code at https://github.com/intel-staging/Speedometer/tree/rich_css/resources/tentative/rich-css |
From discussion during meeting on 06/07/2023 - Please review the workload above. Could we do a PR and add the test to tentative? And labeled accordingly? Currently its labeled as V4. |
Discussion and comments from the slack Channel smfr smfr bgrins bgrins |
[From Hong Sheng] Thanks for the great and valuable comments! Yes, it’s better to be changed to something like “Interacting with Featured Page to Navigate or Search Items” as suggested. We’re also considering to remove CSS gradient and blur from the implementation as well and replace with something more typical in real world. The proposed case stresses CSS processing, DOM and a little bit of painting. Regarding the real-world reflection, we’re inspired by a list of websites that put an image based carousel/slideshow along with list/table of contents as the UI pattern to organize and present their information. Some of the them are listed below.
|
I have updated the code according to the comments, please review code at https://github.com/intel-staging/Speedometer/tree/rich_css/resources/tentative/search-in-featured-page |
Is there a PR to add this workload somewhere? |
I have submitted a PR #247, please review. |
I like the CSS heavy part of this workload, but I still have some doubts:
Maybe we can keep the CSS rules with animations in there, but don't trigger them. |
As I said in PR #247, the generated table contains some heavy CSS effects and animations, which reflects the purpose of the workload. But current solution may introduce much HTML parsing overhead which we will optimise later. |
I'm at a bit of loss as to what state this proposal is in. What is the proposed PR for Speedometer 3? Is it #247 ? If so, that workload seems to induce a bunch of stray async tasks that run outside of the measured time window both on Chrome & Safari so we should fix that. More generally, while I appreciate & value your contributions, this workload seems to be more about measuring the page load speed than web app responsiveness. Since the goal of Speedometer is measuring web app responsiveness, not page load speed, this test might be out of scope by concept. If we were to include this test in Speedometer 3, we need to put more focus on app responsiveness after the page load had completed. |
I share rniwa's sentinment here. Maybe let's not rush this and put investigation / development on pause for this workload (and maybe think about it again for the next version 4) until we have stabilised everything else. |
Thanks for your comments. rniwa - regarding your comment "measuring the page load speed than web app responsiveness" - The measured part of the workload occurs after the page is loaded. So it does measure page responsiveness, by measuring the time it takes to create the initial frame and not the page load speed. |
Measuring the initial frame still sounds like a page load test to me. I think we should not measure the initial frame / page load at all for this workload to be stay focused. |
Hi everyone,
We are from Intel and want to introduce a CSS effects/animations rich workload into Speedoemeter3. Design doc is at https://docs.google.com/document/d/19vK5G11Kc4xbvhpkkXDf5WXdFQWyiK_a0WRwTUcc9j4/
I copied the contents of the document here in case you don't have access to it.
Objective
The objective of this proposal is to introduce a CSS effects/animations rich test case that can help browsers measure and improve CSS performance.
Motivation
CSS is an essential component of modern web development that helps developers build a large number of appealing and engaging websites. When CSS enables fancy webpages, the performance of CSS becomes an important factor affecting user experience on the web. Some web benchmarks normally measure CSS/DOM operations and JS tasks together, making it hard to check CSS performance/impact alone. Therefore, we propose adding a CSS heavy test case into Speedometer3 to help browsers measure and improve CSS performance.
Description
By learning from some real-life scenarios, such as image switching and table updating in https://top10.netflix.com/tv and https://www.imdb.com/, this proposal simulates a food menu with 5 kinds of food. Each food category contains 100 choices, and the first one is recommended. The proposal can automatically switch the 5 kinds of food one by one through clicking food pictures on the top of the page by JS. In the real world, web developers generally use CSS effects/animations to make web pages more appealing and engaging to end users. The proposal also exercises many CSS property operations (referencing the statistics from https://chromestatus.com/), such as transform animation, opacity/color setting, position/size adjustment etc. The web page of this proposal looks like the image below.
Measurement methodology
For performance measurement, the proposal utilizes performance.mark API to mark CSS animation frame start in requestAnimationFrame callback, and mark frame completion in the callback of afterframe API (https://www.npmjs.com/package/afterframe). The image below shows how to measure frame duration in Chrome trace. The final time reported is the average duration to render a frame in milliseconds.
Code can be reviewed at https://github.com/intel-staging/Speedometer/tree/rich_css/resources/tentative/rich-css
Note: The workload can be run by launching index.html from the rich-css folder. It is not integrated into the benchmark runner yet.
A live demo is available at https://hongzheng.github.io/
Results
Run the proposal 10 rounds in Chrome/Firefox/Safari on M2, choose the median of the average frame time as final result and calculate variance using Coefficient of variation (Standard deviation divided by the mean)
The text was updated successfully, but these errors were encountered: