Repository navigation
2.0: performance measurement windows and per-metric state (#769, #770) - #800
Merged
Merged
Conversation
…ction state (#769, #770) LCP keeps the last candidate, also after load; TTI is the end of the last long task before the first 5 s quiet window after FCP; TBT sums long-task blocking over FCP->TTI from the raw task list. The tbt_zero_heavy_page warning is gone: a static page on a slow network has no long tasks. Observers, CDP metrics, navigation timing, the four core metrics, every sub-analysis, JS/CSS coverage and third-party isolation record their state. A failed read is no 0-byte page, no clean resource list and no 100 % JS used. Throttled profiles need CPU throttling, a cold cache and all four core metrics for a score and for canonical adoption.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Package 2, part 2: performance. This builds on the collection contract from #799.
#770 Measurement windows
load. The old cut-off at load + 100 ms kept the small initial text as LCP.domInteractive. It stays markedestimated_labbecause network quiet is not observed.cpuQuietThresholdMs), or after 8 s at most.tbt_zero_heavy_page: the warning claimed TBT = 0 with LCP > 3 s is impossible. That is false: a static page on a slow network has no long tasks. The locale keys are removed too.#769 Measurement evidence
performance.lcp,performance.fcp,performance.cls,performance.tbt. The states are measured, failed (observer_not_installed,metric_not_captured,fcp_not_captured,invalid_metric_value) and unsupported (entry_type_not_supported).used_pct: nullandjs_coverage_unavailableinstead of 100 % used.score: null, reported as "incomplete" in the PDF.min(50)score for a missing LCP is gone.Tests
lcp_includes_a_hero_rendered_after_load,tbt_counts_a_long_task_after_loadandslow_static_page_measures_zero_blocking_time(Slow 3G with a render-blocking stylesheet and no script).foundation_missing_observers_are_not_perfect_zero_metricstest now also checks the reasons.Validation (local, all green)
fmtpasses, andclippy -D warningsis clean with all features and with no default features.cargo test --all-featurespasses.integration_test, 45/45;detection_corpus_test,schema_rules_detection_corpus_test,vulnerable_libs_detection_corpus_test;easy_language_detection_test,help_mechanisms_detection_test,score_calibration_test.reference_sites_testshows no deviation.Browser runs take a little longer because of the 1 s CPU-quiet wait. The detection corpus went from about 400 s to 463 s.