measuring and monitoring client side performance / Nir Nahum

21
Measuring and monitoring client side performance Nir Nahum, CTO @ WalkMe

Transcript of measuring and monitoring client side performance / Nir Nahum

PowerPoint Presentation

Measuring and monitoring client side performanceNir Nahum, CTO @ WalkMe

Measuring and monitoring client side performance

Hi, Im Nir NahumCTO at [email protected]/in/nirnahum

2

What is WalkMe?WalkMe is a game-changing platform that instantly simplifies the online user experience.3

3

4

Enterprise Class Guidance & Engagement Platform

Founded 2011, Launched in April 2012

6 Offices around the world

300+ employees

Raised 92.5M $

Hundreds of customers from various industries & verticals

5

5

Since we are hosted in a website, we share the same resources:CPUMemoryNetworkDOM, Event handlersA performance issue in WalkMe is a performance issue in the hosting website.

Performance Challenges6

So, what do we do?7

7

The solution8A monitoring system that performs automatic performance testing in lab mode and sends the data to dashboards

8

Dashboard Example9

9

Prevent regressionsMore sensitive to performance issuesUnderstand better our bottlenecksVerify performance improvementsCulture

Why have dashboards?10

10

Choose your metricsDefine test casesAutomatic test systemMeasure (Internal + External)Report measurementsCreate dashboardsHow to do it?11

11

Tips12

12

Our product consists of base product + n WalkThrusAssuming our base product consumes 100MB of memoryEach WalkThru consumes 1MB of memoryWe will create two usersData variations in your tests

13Users with different data# WalkThrusMem+5MB in base code+0.1MB in WalkThruUser A2102107 (+5%)102.2 (< +1%)User B500600605 (< +1%)650 (+8%)

The future14Real time monitoring of our customers in production

14

We also monitor our client side javascript files size.

File size monitoring15

Higher file size -> Longer download time and parse time.When there is an increase or decrease in more than 2KB we also send an alert email.Common pitfalls: eval, using external libraries, shared code, no awareness.

File size monitoring (cont.)16

The total time to run a JS file comprises of: Download + Parse + Execution times.

var start = new Date().getTime();

var totalTime = new Date().getTime() - start;

Javascript parse and execution time17

Measuring Parse and Execution times separately

var start = new Date().getTime();// eval the code - the timer at the beginning of this string marks end of parseeval("var parseEnd = new Date().getTime();\n" + "-- SCRIPT CONTENT HERE --");// end of parse to here is exec endvar execEnd = new Date().getTime();

var parseTime = parseEnd - start;var execTime = execEnd - parseEnd;

Javascript parse and execution time18

Optimize parsing and execution separatelyhttps://github.com/etsy/DeviceTimingJavascript parse and execution time (cont.)19

We are hiring!20www.walkme.com/[email protected]

20