Updating conversion, creating readmes
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome Page Speed Metrics [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://awesome.re/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://awesome.re)[0m
|
||||
[38;5;12m [39m[38;2;255;187;0m[1m[4mAwesome Page Speed Metrics [0m[38;5;14m[1m[4m![0m[38;2;255;187;0m[1m[4mAwesome[0m[38;5;14m[1m[4m (https://awesome.re/badge.svg)[0m[38;2;255;187;0m[1m[4m (https://awesome.re)[0m
|
||||
|
||||
[38;5;11m[1m▐[0m[38;5;12m [39m[38;5;12mMetrics to help understand page speed and user experience.[39m
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
|
||||
[38;5;12mMake a request to your page with a tool and evaluate performance. Be sure to make it realistic (e.g. by throttling network and CPU) and reduce noise (e.g. by running multiple times).[39m
|
||||
|
||||
[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mLighthouse[0m[38;5;12m [39m[38;5;12m(https://developers.google.com/web/tools/lighthouse/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mtool[39m[38;5;12m [39m[38;5;12mbuilt[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mGoogle[39m[38;5;12m [39m[38;5;12mChrome[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12maudit[39m[38;5;12m [39m[38;5;12mweb[39m[38;5;12m [39m[38;5;12mpages.[39m[38;5;12m [39m[38;5;12mYou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mrun[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mChrome[39m[38;5;12m [39m[38;5;12mDevTools,[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mChrome[39m[38;5;12m [39m[38;5;12mExtension[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mcommand[39m[38;5;12m [39m[38;5;12mline[39m[38;5;12m [39m[38;5;12m(even[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m
|
||||
[38;5;12mheadless[39m[38;5;12m [39m[38;5;12mChrome).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mLighthouse[0m[38;5;12m (https://developers.google.com/web/tools/lighthouse/) - A tool built on Google Chrome to audit web pages. You can run it from Chrome DevTools, a Chrome Extension or from the command line (even with headless Chrome).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mGoogle PageSpeed Insights[0m[38;5;12m (https://developers.google.com/speed/pagespeed/insights/) - Free and hosted Lighthouse reporting (and more) by Google.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mWebpageTest[0m[38;5;12m (https://www.webpagetest.org/) - Free and hosted web performance testing (also an open source project).[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mSitespeed.io[0m[38;5;12m (https://www.sitespeed.io/) - A set of open source performance monitoring tools.[39m
|
||||
@@ -57,12 +56,11 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mSpeedCurve[0m[38;5;12m (https://speedcurve.com/) - Web performance monitoring SaaS.[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mAwesomeTechStack[0m[38;5;12m (https://awesometechstack.com/) - Website awesomeness monitoring Tool.[39m
|
||||
|
||||
[38;5;238m―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
|
||||
[38;2;255;187;0m[4mField Data (Real User Monitoring - RUM)[0m
|
||||
|
||||
[38;5;12mCollect[39m[38;5;12m [39m[38;5;12mperformance[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mreal[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mvisiting[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mpage.[39m[38;5;12m [39m[38;5;12mBe[39m[38;5;12m [39m[38;5;12mmindful[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mactual[39m[38;5;12m [39m[38;5;12moverhead,[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mruns[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12muser's[39m[38;5;12m [39m[38;5;12mbrowser[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mwatch[39m[38;5;12m [39m[38;5;12mout[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mbrowser[39m[38;5;12m [39m[38;5;12msupport[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mrecent[39m[38;5;12m [39m[38;5;12mmetrics[39m[38;5;12m [39m[38;5;12m(e.g.[39m[38;5;12m [39m[38;5;12mcompared[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m
|
||||
[38;5;12muser-base).[39m
|
||||
[38;5;12mCollect performance data from real users visiting your page. Be mindful of the actual overhead, as it runs in your user's browser and watch out for browser support of more recent metrics (e.g. compared to your user-base).[39m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mPerformance tracking with Google Analytics (GA)[0m[38;5;12m (https://philipwalton.com/articles/the-google-analytics-setup-i-use-on-every-site-i-build/#performance-tracking)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mChrome User Experience Report (CrUX)[0m[38;5;12m (https://developers.google.com/web/tools/chrome-user-experience-report/)[39m
|
||||
@@ -76,8 +74,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mCritical rendering path[0m
|
||||
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mcritical[39m[38;5;12m [39m[38;5;12mrendering[39m[38;5;12m [39m[38;5;12mpath[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;14m[1meverything[0m[38;5;14m[1m [0m[38;5;14m[1mthat[0m[38;5;14m[1m [0m[38;5;14m[1mhappens[0m[38;5;14m[1m [0m[38;5;14m[1mbetween[0m[38;5;14m[1m [0m[38;5;14m[1mreceiving[0m[38;5;14m[1m [0m[38;5;14m[1mnetwork[0m[38;5;14m[1m [0m[38;5;14m[1mbytes[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mrendering[0m[38;5;14m[1m [0m[38;5;14m[1msomething[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mscreen[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12mTo[39m[38;5;12m [39m[38;5;12moptimize[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mrendering[39m[38;5;12m [39m[38;5;12mmetrics[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mFirst[0m[38;5;14m[1m [0m[38;5;14m[1mContentful[0m[38;5;14m[1m [0m[38;5;14m[1mPaint[0m[38;5;14m[1m [0m[38;5;14m[1m(FCP)[0m[38;5;12m [39m
|
||||
[38;5;12m(#first-contentful-paint-fcp)[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;14m[1mSpeed[0m[38;5;14m[1m [0m[38;5;14m[1mIndex[0m[38;5;12m [39m[38;5;12m(#speed-index)[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mcritical[39m[38;5;12m [39m[38;5;12mrendering[39m[38;5;12m [39m[38;5;12mpath[39m[38;5;12m [39m[38;5;12mworks.[39m
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mcritical[39m[38;5;12m [39m[38;5;12mrendering[39m[38;5;12m [39m[38;5;12mpath[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;14m[1meverything[0m[38;5;14m[1m [0m[38;5;14m[1mthat[0m[38;5;14m[1m [0m[38;5;14m[1mhappens[0m[38;5;14m[1m [0m[38;5;14m[1mbetween[0m[38;5;14m[1m [0m[38;5;14m[1mreceiving[0m[38;5;14m[1m [0m[38;5;14m[1mnetwork[0m[38;5;14m[1m [0m[38;5;14m[1mbytes[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mrendering[0m[38;5;14m[1m [0m[38;5;14m[1msomething[0m[38;5;14m[1m [0m[38;5;14m[1mon[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mscreen[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12mTo[39m[38;5;12m [39m[38;5;12moptimize[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mrendering[39m[38;5;12m [39m[38;5;12mmetrics[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mFirst[0m[38;5;14m[1m [0m[38;5;14m[1mContentful[0m[38;5;14m[1m [0m[38;5;14m[1mPaint[0m[38;5;14m[1m [0m[38;5;14m[1m(FCP)[0m[38;5;12m [39m[38;5;12m(#first-contentful-paint-fcp)[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;14m[1mSpeed[0m[38;5;14m[1m [0m
|
||||
[38;5;14m[1mIndex[0m[38;5;12m [39m[38;5;12m(#speed-index)[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mcritical[39m[38;5;12m [39m[38;5;12mrendering[39m[38;5;12m [39m[38;5;12mpath[39m[38;5;12m [39m[38;5;12mworks.[39m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mCritical rendering path[0m[38;5;12m (https://developers.google.com/web/fundamentals/performance/critical-rendering-path/)[39m
|
||||
|
||||
@@ -87,8 +85,7 @@
|
||||
|
||||
[38;5;12mA user perceives any visual change within 100ms as instant. Any task blocking the Main Thread by [39m[38;5;14m[1mtaking longer than 50ms is considered a long task[0m[38;5;12m (as it might make the browser unresponsive to user input).[39m
|
||||
|
||||
[38;5;12mTo[39m[38;5;12m [39m[38;5;12moptimize[39m[38;5;12m [39m[38;5;12minteractivity[39m[38;5;12m [39m[38;5;12mmetrics[39m[38;5;12m [39m[38;5;12mlike[39m[38;5;12m [39m[38;5;14m[1mTotal[0m[38;5;14m[1m [0m[38;5;14m[1mBlocking[0m[38;5;14m[1m [0m[38;5;14m[1mTime[0m[38;5;14m[1m [0m[38;5;14m[1m(TBT)[0m[38;5;12m [39m[38;5;12m(#total-blocking-time-tbt)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;14m[1mFirst[0m[38;5;14m[1m [0m[38;5;14m[1mInput[0m[38;5;14m[1m [0m[38;5;14m[1mDelay[0m[38;5;14m[1m [0m[38;5;14m[1m(FID)[0m[38;5;12m [39m[38;5;12m(#first-input-delay-fid)[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mhave[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12munderstand[39m[38;5;12m [39m[38;5;12mlong[39m[38;5;12m [39m[38;5;12mtasks[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mavoid[39m[38;5;12m [39m[38;5;12mthem[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mmuch[39m[38;5;12m [39m[38;5;12mas[39m
|
||||
[38;5;12mpossible.[39m
|
||||
[38;5;12mTo optimize interactivity metrics like [39m[38;5;14m[1mTotal Blocking Time (TBT)[0m[38;5;12m (#total-blocking-time-tbt) and [39m[38;5;14m[1mFirst Input Delay (FID)[0m[38;5;12m (#first-input-delay-fid) you have to understand long tasks and how to avoid them as much as possible.[39m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mSpec - Long Tasks[0m[38;5;12m (https://w3c.github.io/longtasks/)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mBlogpost - Tracking CPU with Long Tasks API[0m[38;5;12m (https://calendar.perfplanet.com/2017/tracking-cpu-with-long-tasks-api/)[39m
|
||||
@@ -103,14 +100,14 @@
|
||||
[38;5;12m- Is it usable - Can users interact with the page, or is it still busy loading? (e.g [39m[38;5;14m[1mTBT[0m[38;5;12m (https://github.com/csabapalfi/awesome-web-performance-metrics/#total-blocking-time-tbt))[39m
|
||||
[38;5;12m- Is it delightful/smooth? - Are the interactions smooth and natural, free of lag and jank?[39m
|
||||
|
||||
[38;5;238m―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
|
||||
[38;2;255;187;0m[4mRendering metrics[0m
|
||||
|
||||
[38;2;255;187;0m[4mFirst Contentful Paint (FCP)[0m
|
||||
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mContentful[39m[38;5;12m [39m[38;5;12mPaint[39m[38;5;12m [39m[38;5;12m(FCP)[39m[38;5;12m [39m[38;5;12mmetric[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mstarts[39m[38;5;12m [39m[38;5;12mloading[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mpart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage's[39m[38;5;12m [39m[38;5;12mcontent[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mrendered[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mscreen.[39m[38;5;12m [39m[38;5;12mFor[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mmetric,[39m[38;5;12m [39m[38;5;12m"content"[39m[38;5;12m [39m[38;5;12mrefers[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mtext,[39m[38;5;12m [39m[38;5;12mimages[39m[38;5;12m [39m
|
||||
[38;5;12m(including[39m[38;5;12m [39m[38;5;12mbackground[39m[38;5;12m [39m[38;5;12mimages),[39m[38;5;12m [39m[38;5;12m [39m[38;5;12melements.[39m
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mContentful[39m[38;5;12m [39m[38;5;12mPaint[39m[38;5;12m [39m[38;5;12m(FCP)[39m[38;5;12m [39m[38;5;12mmetric[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mstarts[39m[38;5;12m [39m[38;5;12mloading[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mpart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage's[39m[38;5;12m [39m[38;5;12mcontent[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mrendered[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mscreen.[39m[38;5;12m [39m[38;5;12mFor[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mmetric,[39m[38;5;12m [39m[38;5;12m"content"[39m[38;5;12m [39m[38;5;12mrefers[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mtext,[39m[38;5;12m [39m[38;5;12mimages[39m[38;5;12m [39m[38;5;12m(including[39m[38;5;12m [39m[38;5;12mbackground[39m[38;5;12m [39m
|
||||
[38;5;12mimages),[39m[38;5;12m [39m[38;5;12m [39m[38;5;12melements.[39m
|
||||
|
||||
[38;5;12m- Lab: Lighthouse[39m
|
||||
[38;5;12m- Field: Chrome 60+, CrUX[39m
|
||||
@@ -128,8 +125,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mCumulative Layout Shift (CLS)[0m
|
||||
|
||||
[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlayout[39m[38;5;12m [39m[38;5;12mshift[39m[38;5;12m [39m[38;5;12moccurs[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mvisible[39m[38;5;12m [39m[38;5;12melement[39m[38;5;12m [39m[38;5;12mchanges[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mposition[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mnext.[39m[38;5;12m [39m[38;5;12mCLS[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msum[39m[38;5;12m [39m[38;5;12mtotal[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mindividual[39m[38;5;12m [39m[38;5;12mlayout[39m[38;5;12m [39m[38;5;12mshift[39m[38;5;12m [39m[38;5;12mscores[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mevery[39m[38;5;12m [39m[38;5;12munexpected[39m[38;5;12m [39m[38;5;12mlayout[39m[38;5;12m [39m[38;5;12mshift[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12moccurs[39m[38;5;12m [39m
|
||||
[38;5;12mduring[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mentire[39m[38;5;12m [39m[38;5;12mlifespan[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage.[39m
|
||||
[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mlayout[39m[38;5;12m [39m[38;5;12mshift[39m[38;5;12m [39m[38;5;12moccurs[39m[38;5;12m [39m[38;5;12many[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mvisible[39m[38;5;12m [39m[38;5;12melement[39m[38;5;12m [39m[38;5;12mchanges[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mposition[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mnext.[39m[38;5;12m [39m[38;5;12mCLS[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msum[39m[38;5;12m [39m[38;5;12mtotal[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mindividual[39m[38;5;12m [39m[38;5;12mlayout[39m[38;5;12m [39m[38;5;12mshift[39m[38;5;12m [39m[38;5;12mscores[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mevery[39m[38;5;12m [39m[38;5;12munexpected[39m[38;5;12m [39m[38;5;12mlayout[39m[38;5;12m [39m[38;5;12mshift[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12moccurs[39m[38;5;12m [39m[38;5;12mduring[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mentire[39m[38;5;12m [39m[38;5;12mlifespan[39m
|
||||
[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage.[39m
|
||||
|
||||
[38;5;12m- Lab: Lighthouse/WPT[39m
|
||||
[38;5;12m- Field: Chrome 77+[39m
|
||||
@@ -138,8 +135,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mVisually Complete[0m
|
||||
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mVisually[39m[38;5;12m [39m[38;5;12mComplete[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mstart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12minitial[39m[38;5;12m [39m[38;5;12mnavigation[39m[38;5;12m [39m[38;5;12muntil[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mvisible[0m[38;5;14m[1m [0m[38;5;14m[1m(above[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mfold)[0m[38;5;14m[1m [0m[38;5;14m[1mpart[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1mpage[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mno[0m[38;5;14m[1m [0m[38;5;14m[1mlonger[0m[38;5;14m[1m [0m[38;5;14m[1mchanging[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12m(e.g.[39m[38;5;12m [39m[38;5;12mWPT[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcolor[39m[38;5;12m [39m[38;5;12mhistogram[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m
|
||||
[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mvideo/screenshots[39m[38;5;12m [39m[38;5;12mrecording).[39m
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mVisually[39m[38;5;12m [39m[38;5;12mComplete[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mstart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12minitial[39m[38;5;12m [39m[38;5;12mnavigation[39m[38;5;12m [39m[38;5;12muntil[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mvisible[0m[38;5;14m[1m [0m[38;5;14m[1m(above[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mfold)[0m[38;5;14m[1m [0m[38;5;14m[1mpart[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1mpage[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mno[0m[38;5;14m[1m [0m[38;5;14m[1mlonger[0m[38;5;14m[1m [0m[38;5;14m[1mchanging[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12m(e.g.[39m[38;5;12m [39m[38;5;12mWPT[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcolor[39m[38;5;12m [39m[38;5;12mhistogram[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mbased[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m
|
||||
[38;5;12mvideo/screenshots[39m[38;5;12m [39m[38;5;12mrecording).[39m
|
||||
|
||||
[38;5;12m- Lab: WPT[39m
|
||||
[38;5;12m- Field: N/A[39m
|
||||
@@ -147,8 +144,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mSpeed Index[0m
|
||||
|
||||
[38;5;12mSpeed[39m[38;5;12m [39m[38;5;12mIndex[39m[38;5;12m [39m[38;5;12mshows[39m[38;5;12m [39m[38;5;14m[1mhow[0m[38;5;14m[1m [0m[38;5;14m[1mquickly[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mcontents[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mpage[0m[38;5;14m[1m [0m[38;5;14m[1mare[0m[38;5;14m[1m [0m[38;5;14m[1mvisibly[0m[38;5;14m[1m [0m[38;5;14m[1mpopulated[0m[38;5;12m [39m[38;5;12m(lower[39m[38;5;12m [39m[38;5;12mnumbers[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mbetter).[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mdone[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mfrequently[39m[38;5;12m [39m[38;5;12mmeasuring[39m[38;5;12m [39m[38;5;12mvisual[39m[38;5;12m [39m[38;5;12mcompleteness[39m[38;5;12m [39m[38;5;12mduring[39m[38;5;12m [39m[38;5;12mloading.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mquicker[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m
|
||||
[38;5;12mvisually[39m[38;5;12m [39m[38;5;12mcomplete[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlower[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mvalue.[39m
|
||||
[38;5;12mSpeed[39m[38;5;12m [39m[38;5;12mIndex[39m[38;5;12m [39m[38;5;12mshows[39m[38;5;12m [39m[38;5;14m[1mhow[0m[38;5;14m[1m [0m[38;5;14m[1mquickly[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mcontents[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mpage[0m[38;5;14m[1m [0m[38;5;14m[1mare[0m[38;5;14m[1m [0m[38;5;14m[1mvisibly[0m[38;5;14m[1m [0m[38;5;14m[1mpopulated[0m[38;5;12m [39m[38;5;12m(lower[39m[38;5;12m [39m[38;5;12mnumbers[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mbetter).[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mdone[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mfrequently[39m[38;5;12m [39m[38;5;12mmeasuring[39m[38;5;12m [39m[38;5;12mvisual[39m[38;5;12m [39m[38;5;12mcompleteness[39m[38;5;12m [39m[38;5;12mduring[39m[38;5;12m [39m[38;5;12mloading.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mquicker[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mmore[39m[38;5;12m [39m[38;5;12mvisually[39m[38;5;12m [39m[38;5;12mcomplete[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mlower[39m[38;5;12m [39m[38;5;12mthe[39m
|
||||
[38;5;12mvalue.[39m
|
||||
|
||||
[38;5;12m- Lab: Lighthouse, WPT (but slightly different spec)[39m
|
||||
[38;5;12m- Field: N/A[39m
|
||||
@@ -166,14 +163,14 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mSpec - Element Timing API[0m[38;5;12m (https://wicg.github.io/element-timing/)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mBlogpost - Hero Element Timing - SpeedCurve[0m[38;5;12m (https://speedcurve.com/blog/web-performance-monitoring-hero-times/)[39m
|
||||
|
||||
[38;5;238m―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
|
||||
[38;2;255;187;0m[4mInteractivity metrics[0m
|
||||
|
||||
[38;2;255;187;0m[4mTime to Interactive (TTI)[0m
|
||||
|
||||
[38;5;12mTime[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12minteractive[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mtime[0m[38;5;14m[1m [0m[38;5;14m[1mit[0m[38;5;14m[1m [0m[38;5;14m[1mtakes[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mpage[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mbecome[0m[38;5;14m[1m [0m[38;5;14m[1mfully[0m[38;5;14m[1m [0m[38;5;14m[1minteractive[0m[38;5;12m [39m[38;5;12m(as[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mMain[39m[38;5;12m [39m[38;5;12mThread[39m[38;5;12m [39m[38;5;12mquiet[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12m5s).[39m[38;5;12m [39m[38;5;12mSometimes[39m[38;5;12m [39m[38;5;12mcalled[39m[38;5;12m [39m[38;5;12mConsistently[39m[38;5;12m [39m[38;5;12mInteractice[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mconfused[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mInteractive[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m
|
||||
[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mCPU[39m[38;5;12m [39m[38;5;12mIdle.[39m[38;5;12m [39m[38;5;12m(Warning:[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mmost[39m[38;5;12m [39m[38;5;12mconfusing[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmisunderstood[39m[38;5;12m [39m[38;5;12mmetrics).[39m
|
||||
[38;5;12mTime[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12minteractive[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mtime[0m[38;5;14m[1m [0m[38;5;14m[1mit[0m[38;5;14m[1m [0m[38;5;14m[1mtakes[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mpage[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mbecome[0m[38;5;14m[1m [0m[38;5;14m[1mfully[0m[38;5;14m[1m [0m[38;5;14m[1minteractive[0m[38;5;12m [39m[38;5;12m(as[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mMain[39m[38;5;12m [39m[38;5;12mThread[39m[38;5;12m [39m[38;5;12mquiet[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12m5s).[39m[38;5;12m [39m[38;5;12mSometimes[39m[38;5;12m [39m[38;5;12mcalled[39m[38;5;12m [39m[38;5;12mConsistently[39m[38;5;12m [39m[38;5;12mInteractice[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mconfused[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mInteractive[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mCPU[39m[38;5;12m [39m[38;5;12mIdle.[39m[38;5;12m [39m[38;5;12m(Warning:[39m[38;5;12m [39m[38;5;12mone[39m
|
||||
[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mmost[39m[38;5;12m [39m[38;5;12mconfusing[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmisunderstood[39m[38;5;12m [39m[38;5;12mmetrics).[39m
|
||||
|
||||
[38;5;12m- Lab: Lighthouse, WPT[39m
|
||||
[38;5;12m- Field: Not recommended as users interacting with your page can skew field measurements of TTI[39m
|
||||
@@ -183,8 +180,7 @@
|
||||
|
||||
[38;2;255;187;0m[4mTotal Blocking Time (TBT)[0m
|
||||
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mTotal[39m[38;5;12m [39m[38;5;12mBlocking[39m[38;5;12m [39m[38;5;12mTime[39m[38;5;12m [39m[38;5;12m(TBT)[39m[38;5;12m [39m[38;5;12mmetric[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtotal[39m[38;5;12m [39m[38;5;12mamount[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mbetween[39m[38;5;12m [39m[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mContentful[39m[38;5;12m [39m[38;5;12mPaint[39m[38;5;12m [39m[38;5;12m(FCP)[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mTime[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mInteractive[39m[38;5;12m [39m[38;5;12m(TTI)[39m[38;5;12m [39m[38;5;12mwhere[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mmain[39m[38;5;12m [39m[38;5;12mthread[39m[38;5;12m [39m[38;5;12mwas[39m[38;5;12m [39m[38;5;12mblocked[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mlong[39m[38;5;12m [39m[38;5;12menough[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mprevent[39m[38;5;12m [39m[38;5;12minput[39m[38;5;12m [39m
|
||||
[38;5;12mresponsiveness.[39m
|
||||
[38;5;12mThe Total Blocking Time (TBT) metric measures the total amount of time between First Contentful Paint (FCP) and Time to Interactive (TTI) where the main thread was blocked for long enough to prevent input responsiveness.[39m
|
||||
|
||||
[38;5;12m- Lab: Lighthouse[39m
|
||||
[38;5;12m- Field: N/A[39m
|
||||
@@ -192,8 +188,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mFirst Input Delay (FID)[0m
|
||||
|
||||
[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mInput[39m[38;5;12m [39m[38;5;12mDelay[39m[38;5;12m [39m[38;5;12m(FID)[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mtime[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mwhen[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1muser[0m[38;5;14m[1m [0m[38;5;14m[1mfirst[0m[38;5;14m[1m [0m[38;5;14m[1minteracts[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1msite[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mtime[0m[38;5;14m[1m [0m[38;5;14m[1mwhen[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mbrowser[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mactually[0m[38;5;14m[1m [0m[38;5;14m[1mable[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mrespond[0m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12minteraction.[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12minteraction[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mclick[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m
|
||||
[38;5;12mlink,[39m[38;5;12m [39m[38;5;12mtap[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbutton,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcustom,[39m[38;5;12m [39m[38;5;12mJavaScript-powered[39m[38;5;12m [39m[38;5;12mcontrol.[39m
|
||||
[38;5;12mFirst[39m[38;5;12m [39m[38;5;12mInput[39m[38;5;12m [39m[38;5;12mDelay[39m[38;5;12m [39m[38;5;12m(FID)[39m[38;5;12m [39m[38;5;12mmeasures[39m[38;5;12m [39m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mtime[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mwhen[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1muser[0m[38;5;14m[1m [0m[38;5;14m[1mfirst[0m[38;5;14m[1m [0m[38;5;14m[1minteracts[0m[38;5;14m[1m [0m[38;5;14m[1mwith[0m[38;5;14m[1m [0m[38;5;14m[1myour[0m[38;5;14m[1m [0m[38;5;14m[1msite[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mtime[0m[38;5;14m[1m [0m[38;5;14m[1mwhen[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mbrowser[0m[38;5;14m[1m [0m[38;5;14m[1mis[0m[38;5;14m[1m [0m[38;5;14m[1mactually[0m[38;5;14m[1m [0m[38;5;14m[1mable[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mrespond[0m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12minteraction.[39m[38;5;12m [39m[38;5;12mAn[39m[38;5;12m [39m[38;5;12minteraction[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12musers[39m[38;5;12m [39m[38;5;12mclick[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mlink,[39m[38;5;12m [39m[38;5;12mtap[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbutton,[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m
|
||||
[38;5;12muse[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcustom,[39m[38;5;12m [39m[38;5;12mJavaScript-powered[39m[38;5;12m [39m[38;5;12mcontrol.[39m
|
||||
|
||||
[38;5;12m- Lab: N/A (as it requires the user to interact with the page)[39m
|
||||
[38;5;12m- Field: IE9+ (and Safari, Chrome, Firefox) (with polyfill - 0.4KB)[39m
|
||||
@@ -208,12 +204,11 @@
|
||||
[38;5;12m- Field: N/A[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mDocs - Max Potential FID - web.dev[0m[38;5;12m (https://web.dev/lighthouse-max-potential-fid/)[39m
|
||||
|
||||
[38;5;238m―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
|
||||
[38;2;255;187;0m[4mNetwork metrics[0m
|
||||
|
||||
[38;5;12mNetwork[39m[38;5;12m [39m[38;5;12mtiming[39m[38;5;12m [39m[38;5;12mfield[39m[38;5;12m [39m[38;5;12mdata[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12muncover[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mnon-optimized[39m[38;5;12m [39m[38;5;12mTLS[39m[38;5;12m [39m[38;5;12msetup,[39m[38;5;12m [39m[38;5;12mslow[39m[38;5;12m [39m[38;5;12mDNS[39m[38;5;12m [39m[38;5;12mlookups[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mserver[39m[38;5;12m [39m[38;5;12mside[39m[38;5;12m [39m[38;5;12mprocessing[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12missues[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12mCDN[39m[38;5;12m [39m[38;5;12mconfiguration.[39m[38;5;12m [39m[38;5;12mSee[39m[38;5;12m [39m[38;5;12malso[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mseparate[39m[38;5;12m [39m[38;5;12msection[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12mmeasuring[39m[38;5;12m [39m[38;5;14m[1mtransferred[0m[38;5;14m[1m [0m[38;5;14m[1mbytes[0m[38;5;12m [39m
|
||||
[38;5;12m(#transferred-bytes).[39m
|
||||
[38;5;12mNetwork timing field data can uncover a non-optimized TLS setup, slow DNS lookups or server side processing and issues with CDN configuration. See also a separate section about measuring [39m[38;5;14m[1mtransferred bytes[0m[38;5;12m (#transferred-bytes).[39m
|
||||
|
||||
[38;5;12m- [39m[38;5;14m[1mBlogpost - Navigation and Resource Timing[0m[38;5;12m (https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mSpec - Navigation Timing[0m[38;5;12m (https://www.w3.org/TR/navigation-timing-2/)[39m
|
||||
@@ -253,8 +248,7 @@
|
||||
|
||||
[38;2;255;187;0m[4mTransferred bytes[0m
|
||||
|
||||
[38;5;12mYou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mmeasure[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbyte[39m[38;5;12m [39m[38;5;12mweight[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12massets[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mnumber[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtools.[39m[38;5;12m [39m[38;5;12mYou[39m[38;5;12m [39m[38;5;12mwould[39m[38;5;12m [39m[38;5;12mnormally[39m[38;5;12m [39m[38;5;12mtrack[39m[38;5;12m [39m[38;5;12mthese[39m[38;5;12m [39m[38;5;12mLab[39m[38;5;12m [39m[38;5;12monly[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mnumbers[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12musually[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mField[39m[38;5;12m [39m[38;5;12m(but[39m[38;5;12m [39m[38;5;12mbe[39m[38;5;12m [39m[38;5;12mmindful[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mdevice[39m[38;5;12m [39m[38;5;12mtype[39m[38;5;12m [39m[38;5;12mor[39m[38;5;12m [39m[38;5;12mgeographical[39m[38;5;12m [39m
|
||||
[38;5;12mlocation[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mpages).[39m
|
||||
[38;5;12mYou can measure the byte weight of your assets with a number of tools. You would normally track these Lab only as the numbers are usually the same in the Field (but be mindful of device type or geographical location specific pages).[39m
|
||||
|
||||
[38;5;12mMeasuring own (and third-party) JavaScript bytes is crucial as JavaScript is the main cause of high [39m[38;5;14m[1mTTI[0m[38;5;12m (#time-to-interactive-tti) or [39m[38;5;14m[1mFID[0m[38;5;12m (#first-input-delay-fid) values.[39m
|
||||
|
||||
@@ -265,7 +259,7 @@
|
||||
[38;5;12m- [39m[38;5;14m[1mCan You Afford It?: Real-world Web Performance Budgets[0m[38;5;12m (https://infrequently.org/2017/10/can-you-afford-it-real-world-web-performance-budgets/)[39m
|
||||
[38;5;12m- [39m[38;5;14m[1mWhich third party scripts are most excessive[0m[38;5;12m (https://github.com/patrickhulce/third-party-web)[39m
|
||||
|
||||
[38;5;238m―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||||
|
||||
[38;2;255;187;0m[4mOther metrics[0m
|
||||
|
||||
@@ -277,8 +271,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mUser Timing[0m
|
||||
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mUser[39m[38;5;12m [39m[38;5;12mTiming[39m[38;5;12m [39m[38;5;12mAPI[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdeveloper[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mapplication[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mtimestamps[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mpart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbrowser's[39m[38;5;12m [39m[38;5;12mperformance[39m[38;5;12m [39m[38;5;12mtimeline.[39m[38;5;12m [39m[38;5;12me.g.[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mtiming[39m[38;5;12m [39m[38;5;12mmark[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmeasure[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mJS[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mloaded[39m[38;5;12m [39m
|
||||
[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mcomponent[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage.[39m
|
||||
[38;5;12mThe[39m[38;5;12m [39m[38;5;12mUser[39m[38;5;12m [39m[38;5;12mTiming[39m[38;5;12m [39m[38;5;12mAPI[39m[38;5;12m [39m[38;5;12mallows[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdeveloper[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12mapplication[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mtimestamps[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mpart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbrowser's[39m[38;5;12m [39m[38;5;12mperformance[39m[38;5;12m [39m[38;5;12mtimeline.[39m[38;5;12m [39m[38;5;12me.g.[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mcan[39m[38;5;12m [39m[38;5;12mcreate[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mtiming[39m[38;5;12m [39m[38;5;12mmark[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mmeasure[39m[38;5;12m [39m[38;5;12mwhen[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12mJS[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mloaded[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mspecific[39m[38;5;12m [39m[38;5;12mcomponent[39m[38;5;12m [39m
|
||||
[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mpage.[39m
|
||||
|
||||
[38;5;12m- Lab: Lighthouse, WPT[39m
|
||||
[38;5;12m- Field: IE 10+, Safari 11+ (and Chrome, Firefox of course)[39m
|
||||
@@ -292,8 +286,8 @@
|
||||
|
||||
[38;2;255;187;0m[4mFrame rate[0m
|
||||
|
||||
[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mrate[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mfrequency[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mwhich[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mbrowser[0m[38;5;14m[1m [0m[38;5;14m[1mcan[0m[38;5;14m[1m [0m[38;5;14m[1mdisplay[0m[38;5;14m[1m [0m[38;5;14m[1mframes[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mrepresents[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mamount[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mwork[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbrowser[39m[38;5;12m [39m[38;5;12mdoes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mevent[39m[38;5;12m [39m[38;5;12mloop[39m[38;5;12m [39m[38;5;12miteration[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mprocessing[39m[38;5;12m [39m[38;5;12mDOM[39m[38;5;12m [39m[38;5;12mevents,[39m[38;5;12m [39m[38;5;12mresizing,[39m[38;5;12m [39m[38;5;12mscrolling,[39m[38;5;12m [39m
|
||||
[38;5;12mrendering,[39m[38;5;12m [39m[38;5;12mCSS[39m[38;5;12m [39m[38;5;12manimations,[39m[38;5;12m [39m[38;5;12metc.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mrate[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m60[39m[38;5;12m [39m[38;5;12mfps[39m[38;5;12m [39m[38;5;12m(frames[39m[38;5;12m [39m[38;5;12mper[39m[38;5;12m [39m[38;5;12msecond)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcommon[39m[38;5;12m [39m[38;5;12mtarget[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12mresponsive[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mexperience.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mmeans[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbrowser[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mprocess[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12m16.7[39m[38;5;12m [39m[38;5;12mms.[39m
|
||||
[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mrate[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mfrequency[0m[38;5;14m[1m [0m[38;5;14m[1mat[0m[38;5;14m[1m [0m[38;5;14m[1mwhich[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mbrowser[0m[38;5;14m[1m [0m[38;5;14m[1mcan[0m[38;5;14m[1m [0m[38;5;14m[1mdisplay[0m[38;5;14m[1m [0m[38;5;14m[1mframes[0m[38;5;12m.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mrepresents[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mamount[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mwork[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbrowser[39m[38;5;12m [39m[38;5;12mdoes[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mevent[39m[38;5;12m [39m[38;5;12mloop[39m[38;5;12m [39m[38;5;12miteration[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mprocessing[39m[38;5;12m [39m[38;5;12mDOM[39m[38;5;12m [39m[38;5;12mevents,[39m[38;5;12m [39m[38;5;12mresizing,[39m[38;5;12m [39m[38;5;12mscrolling,[39m[38;5;12m [39m[38;5;12mrendering,[39m[38;5;12m [39m[38;5;12mCSS[39m[38;5;12m [39m[38;5;12manimations,[39m[38;5;12m [39m
|
||||
[38;5;12metc.[39m[38;5;12m [39m[38;5;12mA[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12mrate[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m60[39m[38;5;12m [39m[38;5;12mfps[39m[38;5;12m [39m[38;5;12m(frames[39m[38;5;12m [39m[38;5;12mper[39m[38;5;12m [39m[38;5;12msecond)[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcommon[39m[38;5;12m [39m[38;5;12mtarget[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgood[39m[38;5;12m [39m[38;5;12mresponsive[39m[38;5;12m [39m[38;5;12muser[39m[38;5;12m [39m[38;5;12mexperience.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mmeans[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbrowser[39m[38;5;12m [39m[38;5;12mshould[39m[38;5;12m [39m[38;5;12mprocess[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mframe[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mabout[39m[38;5;12m [39m[38;5;12m16.7[39m[38;5;12m [39m[38;5;12mms.[39m
|
||||
|
||||
[38;5;12m- Lab: Chrome and FF Devtools[39m
|
||||
[38;5;12m- Field: No browser implements the Frame Timing API yet but you can roll your own fps meter using [39m[48;5;235m[38;5;249mrequestAnimationFrame[49m[39m
|
||||
|
||||
Reference in New Issue
Block a user