You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ResourceTiming is currently the most expensive plugin as far as JavaScript CPU time and beacon size for larger sites.
Depending on the site and device, compressing the ResourceTiming entries could take 20-100 milliseconds or more.
We should investigate ways of reducing this cost. Some ideas:
Before compressing the entries, we must iterate over all of the frames in the page to gather all entries. We could use the PerformanceObserver in some (or all) frames to get notified of new entries, instead of crawling for them
The optimizeTrie is the most expensive operation, where it iterates over each character in every URL. We could look into forming a non-perfect Trie by grouping every 10 characters together, or something
The text was updated successfully, but these errors were encountered:
We have a fix in review (Akamai repo), which splits the URL at the path separator / instead of by every character in convertToTrie().
Summary of the benefits:
These optimizations are more important on larger sites (i.e. 100+ URLs)
On sites where the ResourceTiming optimization was taking > 100ms (on desktop CPUs), changing to splitting at / reduced CPU time to ~25ms at only a 4% growth in data (restiming) size.
On sites taking 25-35ms, changing to / reduced CPU time to ~10ms at 2-3% data growth
ResourceTiming
is currently the most expensive plugin as far as JavaScript CPU time and beacon size for larger sites.Depending on the site and device, compressing the ResourceTiming entries could take 20-100 milliseconds or more.
We should investigate ways of reducing this cost. Some ideas:
PerformanceObserver
in some (or all) frames to get notified of new entries, instead of crawling for themoptimizeTrie
is the most expensive operation, where it iterates over each character in every URL. We could look into forming a non-perfect Trie by grouping every 10 characters together, or somethingThe text was updated successfully, but these errors were encountered: