the web performance conference21-22 November 2019, Amsterdam

Questions and Answers

Ask your interview questions via this form, or via Twitter. Below you'll find each question. Also see our FAQ for general questions.

How does Speed Index deal with video/animation (gradients?) — David

How would you best measure 3rd party’s long tasks blocking the main thread or postponing the TTI? — Patricio

When does the last painted hero t-shirt become available?

Wondering how to reduce layout junk when using SSR together with responsive components. Sometimes these are resized on the client based on dimensions which is probably bad. — Sebastian

If First Meaningful Paint is an important metric, why does it have such a low weight (1) in Lighthouse Performance Score? Ok, It's sensitive, but Speed Index is also sensitive but gets weight 4. — Aleksey

Can we get speed index from the browser? i.e. for RUM? — Marcel

Will there ever be an option to get unsampled user timing metrics in Google Analytics? — Joe Green

Paul, just to understand FID e.g. should we be worried if 20% of visitors experience > 100 ms FID? Are there there known trends about FID? — Tsvetan

What are your thoughts on using workers to improve TTI? — Darryl

How can user save 34s when time to interactive 5s? :) (Just a bug in Lighthouse Report) — Aleksey

How to scale a performance culture across multiple teams and multiple offices? — Manuel

What do you do if some new feature is expected to cause a slowdown? Do you review the performance budgets or is it always possible to optimize the code?

How much time is there between a pager duty call and a commit reversed and undone on PROD? — Hidde

Does release automatically gets blocked when performance declined? — Meinaart

Michelle mentioned performance team carrying a pager. How do they distribute that responsibility? How often do their evenings or weekends get interrupted? I'm fascinated by performance pager duty. Is this a common practice at large orgs? Should it be? — Jason

How did you validate and instilled confidence in your performance metrics collection? — Tiago

How do you prevent death by a thousand cuts for when metrics creep up and aren't huge regresssions?

In a microservices architecture, how do you identify performance regressions that have occurred due to changes in projects that cannot necessarily be monitored with automated tools? — Joe

You mentioned that pinterest has about 8000 monthly commits. Are you able to say how large is the codebase?

Is it wrong to link a css file in the head tag and another css, for the navigation for example, in the body tag? — Julia

When will Apple support Push API? — Ishita

Do you have any recommendations/quick wins how PWA could be implemented in iterations for organizations that can't afford investing time for complete rebuild of their website? — Tsvetan

Did you have to take special approach to integrate 3rd party scripts? How the whole tracking things works in offline mode? Does it work at all? — David

What is a reasonable amount of cache space you can take up with PWA? — Tim

Is there a way to track Add to homescreen button? Does the Payment Request api can work on different subdomains? (After login, the page is redirected to a different domain and after that on another subdomain in the last checkout step)? — Julia

Do you use or did you consider an App Shell architecture to store the common and most important parts of the Etsy shop in local cache/storage? — Johan

has Uncss created complexity in your deployment pipeline and regressions on production when you first have adopted it? — Tsvetan

Did you use automation for placing the debug points for Vimes or you placed thouse points manually in the JS files? — Tsvetan

Does it make sense to try to only have images being x times 64px in height and y times in height? — Tim

Any chance of seeing Wavelet based (Filter banks) compression instead of Fixed DCT used in image formats — Jan

Wouldn't it be a good idea if browsers would take care of resp. images themselves by offering them only one large progressive JPEG which they would then partially load until there is enough detail for the actual size of the IMG elem? — Christian

How do you measure visual progress of a page load? — Alexey

Which one is the fastest way to load the images: img html tag or background image from css? When and why should we use base64? — Julia

What is the balance between improving perceived performance and consuming bandwidth responsibly? For example, since WebP is more efficient but does not support progressice rendering, does it make sense to use progressive jpegs in low bandwidth and/or metered connections? — Fotis

Which CDN offers Edge Workers?

Was PiedPiper involved with AV1? — @bgever

Kernel, did you investigate the client side effects of the video trick? Tsvetan

I’ve heard a lot about the ineffectiveness of server push. Is this a problem with the specification or the implementation? Would having features like cache digest make server push great again?

I am interested if Yoav knows if QUIC will be adopted soon in webservers like NGINX and Apache — Tsvetan Stoychev

How low level machine control do I need to apply a BBR fix? Can a cloud hosted virtual machine control network buffers well enough? — Peter Müller

How do you choose between h2 push and preload in html? — Max

Does it make sense to use H2 for inte-service communication to optimise server processing time? — Matt

CPu throttling is a great tool, but are there any studies anchoring the slowdown factors to real devices? Or is it just “some devices are A LOT slower”? — Andrius from Brave

In addition to throttling, what is the best way to simulate performance in remote areas of the world where latency plays a big role? Is synthetic really the best tool for this?

How to prioritize of a new feature release vs improving performance

It seems contradictory that we add client side JS in SErvicd worker to take into account data-saver. — Tim

Does @tameverts by any chance know what metric Google Analytics uses for its page load time charts? We recently heavily optimized a news site (e.g. resp. images & lazy load) and got 10 extra Lighthouse points, but metric in GA stayed the same as before — Christian

All these metrics are about singular pages. Visitors complete goals in sessions of multiple page visits. Shouldn’t the metrics focus on a funnel/path/goal completion rather than statically on one page load? — Johan

Can performance poverty line be used as a metric? — Matt

So FCP and FMP are broken, they happen often before start render, but google's using it in their insights tool — André

Can I define my own heroes per template in @SpeedCurve ? — André

How to combine hydration (SSR) e.g. with @reactjs with browser performance metrics - especially time2interactive (TTI). Can we make sure that TTI is “fires” after hydration?

TTI and third parties what can we do to improve interactivity?

What metrics would make sense for measuring performance in native apps?

The spec says that header names/keys are case- insensitive. But what about values like the one in the Vary header? Is it better to repeat the entries in lower and upper case, just to be sure? E.g. "Vary: Content-Type, content-type" — Christian

How about the dreadful IE11? CSP virtually is not suppported, and you do need to set P3p to set cookies on responses. Arguably, IE11 support is the one reason for those bad practices still being in the wild — Max

csp policies make it less flexible to test new tools as a webanalist — André

How do you feel about client hints and their potential use for user profiling?

Are there clever hackers that just always send status code 200 for their pages, regardless of the real result, so they are able to send (Link-)headers early? Could they afterwards fix their wrong status with some sort of <meta http-equiv> in HTML? — Christian

Could you recommend some resources/conferences for more exposure to current protocol research? — Max

Does QUIC still has the notion of keep-alive? — Tim

Regarding standards and ossification. What happens if either of the two protocols, say TLS, wants to expand in the future? Could it be being co-dependent with QUIC limit options?

How is quic in China?

What can we do as web app developers to start taking advantage of newer web protocols? — Joe Green

Why/how are there negative numbers in latency gains on fast mobile network? — Nicolas

Can you explain difference between bold font and font + font weight? Or why have 2 fonts vs 1? — Tim

Traditional wisdom for perf was no webfonts on Mobile, is that still true with this new strategy? — Katie

Do you need preconnect if you have preload?

Do you ever try to find fallback fonts that have make less of a difference in reflow because their size is similar to the size of the final font? If so, do you have any hints on how to find fonts with similar sizes? — Jason

How about storing font in local storage or embedding font in html?

I'm tying to understand how the font loading API, without a class, can normalize font synthesis. Do we set the Roman font as fallback for the bold and italic variants? Or is there something else? — Fotis

Can you ‘optimise’ variable fonts in a similar way to subsetting in conventional fonts? (eg, only include specific axes) Would it give any sensible savings? — Jon

What is the easiest way to update a self hosted Google font? — Julia

I am wondering if Adrian is doing performance monitoring of his app on client side (RUM)? If yes could he share some tips? — Tsvetan

Have you tried using a native scrollbar, by using a tall, empty wrapper div, and monitoring its scroll offset to redraw an absolutely positioned canvas inside it? If it works (not sure) this could guarantee you support all methods of scrolling (keys, touch, mouse, imaginary future interactions...) without missing some edge case. — Callum

I am wondering if Adrian had issues when marked area and played sound were out of sync because of performance reasons? — Tsvetan

Does that type specific JS engine optimization also mean instantiating with the value undefined and later assigning it or array values screws with this engine level optimisation? — Joël

Does time to deliver a feature in order to learn something factor into descisions made around using third party libs vs reinventing the wheel and writing it yourself? — Joe Green

Is there a time penalty for the first (cold cache) load with app shells?

What are the tools to ensure perceived performance all the time (not just load)? How do we track the perceived performance of SPA? (it's not 97%, because most of the interactions happen after the load) — Aleksey

Are there ways to throttle CPU/GPU to test the FPS on different devices? — @bgever

How well are frameworks like angular/react optimised for painting/reflow performance? — Jonas

Do you have any tips to mitigate reflows from images loading when you don’t know the aspect ratio? e.g. user content entered within a CMS

Are there ways to automate testing to see if code changes impacts interactive performance?

What is the tool you use for Safari? — Alberto Gomes

3rd parties... how to call out offenders to make changes. Adobe analytics and optimizely are painful but product teams love these.

Is the blackhole hosts file change done locally or on the webpagetest agent(s)? — Marcel

We use RTB (Real time bidding) script to serve ads, so our 3rd party scripts urls potentially changes every day. What can I do about this to audit/mitigate at least a little bit of these requests? (We have sometimes more than 500+ 3rd party scripts like in your example, but I feel I can't do anything about it) — Nicolas

For defensively programming around script loading errors (like asking a user to refresh), where should that code go? Does it need to be an inline script in the HTML to ensure it’s always there? — Tim

Why are there no server-based implementations that can send the data to 3rd parties?

Does hosting on your own cdn count as self hosting or is it strictly one domain? — Hidde

If you have http/2 enabled, does it make sense to use async? — Julia

One advantage of using a 3rd party CDN is the resource might already be in the users cache from another website. Is there a way to get this benefit with self-hosting? — Thomas Kelly

Are you always this grumpy in the morning? ;) — Krijn

Async vs deferred: main difference and what to prefer? — Jan

Prefetching & preloading resources; good with defer/async assets?

Does preload JS with async JS not remove some benefits of async? — Tim

What caused a drop in JS sizes in 2017 in the chart?

With regards to 3rd party JS: most of these are loaded async. Shouldn’t we focus on lowering the initial load of 1s party scripts? — Ron Derksen

Is npm evil?

Now we know optimizing JS is so important, do we have the same ways to measure for WebAssembly (WSM)? As this technology is likely going to gain more popularity over time, and has a similar performance impact. — @bgever

The main tool to load 3rd party scripts is Google Tag Manager. How to budget that when you don’t control wat gets included?

What about angular?

In coverage on browser plugin, does it measure js usage after browsing?

When to use async then if defer is always a better choice? — Ishita

Do we need a performance engineer on the team? — Max

Whats better: One js or many parallel

About preload scripts, you said that should be done to improve performance but what about ONLY to preload resources that affects the critical rendering path (start render graph), in that way we make sure to not collapse the bandwidth, what is your opinion about that?

Hi, on a huge website, should i continue to concatenate all my scripts files in a large one, and profits of the http cache across all the pages even if code coverability is not optimal, or should I take benefits from http2 and split my js files and serve only scripts needed for each pages ? — Nicolas

Are web workers something that should be used more? — Anders

With the mobile system growing in configuration why does it have such a big difference in performance compared to the desktop — Ish