Visualize your REAL web app performance
By Tsachi Shushan, Software Engineer @
Our (painful) story
Two year ago, launched a new web application, tested and optimised for performance
300 components and 1000 commits later - page loading time was more than 17 seconds
Users were not happy

Why is it slow?
First instinct - find the problem (chrome devtools, webpagetest)
A better question: why didn't we know it's slow?
Goals
- Constantly monitor app performance
- Measure real users experience
- Add performance awareness to our dev cycle
Now what?
Added more metrics and dimensions
Leveraged our current monitoring system
Started with a basline
Created some simple metrics

<script>performance.mark('scripts-start');</script>
<script src="https://u.outbrain.com/amplify/static/vendor.87b3e4af58273a61209b.js"></script>
<script src="https://u.outbrain.com/amplify/static/app.10f8627e9a08eca68701.js"></script>
<script>performance.mark('scripts-end');</script>
...
performance.measure('ob_css_load_time', 'css-start', 'css-end');
performance.measure('ob_scripts_load_time', 'scripts-start', 'scripts-end');
performance.measure('ob_total_page_load_time', 'total-page-load-start', 'total-page-load-end');
const measures = performance.getEntriesByType('measure')
.filter(msr => msr.name.includes('ob_'))
.map(msr => {
return {
name: msr.name,
duration: parseInt(msr.duration),
browser: this.browserDetectService.type,
speed: connection ? connection.effectiveType : ''
}
});
this.http.post('/performance-benchmark', { measures });
Success!
Identified and solved number of problems
Raised developers awareness
Clearly see how changes to our code affect performance
What's Next?
Specific users flows
Memory leaks
Alternatives



Visualize your real web app performance
By Tsachi Shushan
Visualize your real web app performance
- 457