-
Notifications
You must be signed in to change notification settings - Fork 820
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
[Sticky] Number of paint calls is higher than expected #498
Comments
@alexfmpe I think the warning for reflex-dom is also due to that missing span. Can you please add it? |
Looks good. No more warnings for those benchmarks. I'll leave the issue open for future reference. |
Why is there a cap on the number of paint calls? It appears to cause problems with the render scheduler in Fre - see this: The code seems to suggest this is a warning and not an error? js-framework-benchmark/webdriver-ts/src/forkedBenchmarkRunner.ts Lines 206 to 209 in dc4e9bb
Not sure if this warning matters, or whether it's avoidable with Fre. It's an interesting new framework with a fairly novel approach to rendering and scheduling - it would be nice if we could get this onboard with the benchmarks, but I wonder if this type of scheduling makes it inherently difficult to benchmark. 🤔 |
This message mattered for older versions of chrome when more than a single paint event really meant that something didn't behave as expected. For newer chrome version this occurs fairly often, even for vanillajs like
The benchmark uses the last paint event to compute the duration for an operation. I took a look at fre, which reports 3 paint events for create rows:
This looks OK to me (and is what I see in the timeline). I think I'll remove the warning someday. Please ignore the warnings for the time being. BTW the fre implementation isn't correctly keyed regarding create rows and swap rows:
Looks like fre doesn't swap the rows which is a requirement for a keyed implementation and it doesn't replace the rows but re-uses them for create rows. This is fine for a non-keyed implementation but not so for keyed. |
fre-vinvalid-keyed is keyed for 'run benchmark' and keyed for 'remove row benchmark' and keyed for 'swap rows benchmark' . It'll appear as keyed in the results Very strange, because it seems normal on my computer. I'll reopen another issue. If I switch internal scheduling to micro tasks, these warnings will disappear, but I don't want to do so. Because Time slicing is fre's default option. |
Benchmarking some of the frameworks yields a warning like "For framework reflex-dom and benchmark 01_run1k the number of paint calls is higher than expected. There were 3 paints though at most 2 are expected. Please consider re-running and check the results"
Looks like this happens when the remove icon is not preloaded and thus repaints occur once the glyph is loaded. Every benchmark must make sure that the following span in included:
The text was updated successfully, but these errors were encountered: