Stumped on Start Render Time Difference

Greetings,

First, I want to thank Patrick and the team at WPT for providing this amazing resource. Aside from an (unnamed) application performance monitoring tool, this site (including the forums) have been an invaluable resource to us.

We have been working pretty hard on the performance of our site over the past year, trying to employ every “best practice”: CDN, async JS/dependencies, nginx, caching, etc. We have every page on the site pre-warmed.

We’ve hit a plateau troubleshooting the differences between Start Render render times from different parts of the world.

The TTFB is nearly identical (obviously, slightly different from geography), but the there is nearly a ~1.0 s difference between a SR render time from Dulles, vs. Tokyo or Geneva. Our server is based in Oregon:

eg.

Dulles:

Load Time First Byte Start Render
2.736s 0.317s 0.679s

Tokyo:

Load Time First Byte Start Render
4.814s 0.456s 1.765s

Geneva:

Load Time First Byte Start Render
4.664s 0.484s 1.767s

The CDN seems to perform roughly the same around the world, so it doesn’t seem like a difference in downloading of content. We have some third-party files referenced - eg. G +1, FB - but they are all async.

Maybe this difference is something obvious, but I appreciate any insight. :slight_smile:

Thanks in advance,
Jay

It’s possible there are machine differences since the test agents globally aren’t identical (unfortunate but it is what it is). Otherwise there could also be real timing differences.

What browser? If it’s Chrome, can you enable a timeline capture (in the Chrome tab of advanced settings)? That will give you a lot of information about the scripts, layout events, etc and help track down any differences.

Are you serving the base page off of the CDN as well or is it coming directly from the origin (or through a warmed CDN connection using DSA)? The added latency can add up in delivering the origin content with multiple round trips.

Is the start render content equivalent? Just wondering if timing cases different locations to delay the first render while it’s processing some other stuff.

If you can share them, test results (preferably Chrome with timeline, video and 9 runs) from each location would help so we’re all looking at the same thing.