performance.measure usage data

During TPAC, a few questions came up regarding how performance.measure is
used.

   - Can we deprecate the use of NavigationTiming timestamps from
   performance.measure?
      - This relates to the open spec issue
      <https://github.com/w3c/user-timing/issues/31> on clarifying what
      navigation timing entries are allowed, and how their values are used.
      - Also see discussion on whether we can deprecate use of
      NavigationTiming entries completely here
      <https://github.com/w3c/user-timing/issues/26> and here
      <https://github.com/w3c/user-timing/issues/22>.
   - Can we pass an object as measure's second parameter without breaking
   pages?
      - This relates to the L3 proposal
      <https://docs.google.com/document/d/1hltt8z9C4PaI5Qu1YMIp1wOGdbJPJPoJwBarEeCY6xQ/edit#heading=h.ejti6qhmjv0b>
      presented at TPAC.

There are also some other outstanding issues on the user timing spec which
relate to this.

   - Should performance.measure work with resource timing entries
   <https://github.com/w3c/user-timing/issues/27>?


We've gathered some data on the usage of timestamps from NavigationTiming
in performance.measure, and the usage of objects passed into
performance.measure.

This data is for the last 5 days, aggregated across all platforms, on
Chrome's dev channel.

We see 0.100% of page views use some timestamp from Navigation Timing.

Here are the frequencies of usage of NavigationTiming timestamps, across
all pages. This is likely heavily skewed by a small number of pages which
use certain timestamps a lot.

Performance Measure Start Timestamp
unloadEventStart 1.55%
domInteractive 3.62%
domContentLoadedEventStart 51.76%
domContentLoadedEventEnd 0.16%
domComplete 0.19%
loadEventStart 41.89%
loadEventEnd 0.84%
Performance Measure End Timestamp
unloadEventEnd 0.65%
domInteractive 29.55%
domContentLoadedEventStart 0.05%
domContentLoadedEventEnd 23.20%
domComplete 20.29%
loadEventStart 4.92%
loadEventEnd 21.34%
We see no usage at all of objects being passed into performance.measure's
second parameter.

   - Can we deprecate the use of NavigationTiming timestamps from
   performance.measure?
      - I think the usage is high enough that we shouldn't deprecate this,
      but should move the list of acceptable timestamps into UT L2, and clarify
      the spec regarding how these timestamps behave, as discussed here
      <https://github.com/w3c/user-timing/issues/31>, here
      <https://github.com/w3c/user-timing/issues/22> and here
      <https://github.com/w3c/user-timing/issues/26>.
   - Can we pass an object as measure's second parameter without breaking
   pages?
      - Yes!
   - Should performance.measure work with resource timing entries?
      - I think the L3 proposal
      <https://docs.google.com/document/d/1hltt8z9C4PaI5Qu1YMIp1wOGdbJPJPoJwBarEeCY6xQ/edit#heading=h.ejti6qhmjv0b>
      covers this use case, and we should discourage the use of special
      timestamps being passed into measure. I propose WontFix'ing the issue
      <https://github.com/w3c/user-timing/issues/27>.

Tim

Received on Tuesday, 5 December 2017 15:54:57 UTC