Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Andrew Duncan Managing Director, SwarmOnline Member No. 149387 @andrewduncan andrew@swarmonline.com © 2015 SwarmOnline
Slide 2
Slide 2 text
1. Memory Management 2. Tools of the trade MEMORY LEAK HEALTH CHECK Our Quest to Diagnose & Cure © 2015 SwarmOnline
Slide 3
Slide 3 text
WHY IS THIS TOPIC IMPORTANT? • Move to richer / interactive applications • More use of JavaScript to achieve this • Single Page Applications • Cross integration of multiple frameworks and technologies • Multiple device types, operating systems and browsers © 2015 SwarmOnline
Slide 4
Slide 4 text
MEMORY LEAK DEFINITION mem . o . ry leak noun COMPUTING noun: memory leak; plural noun: memory leaks a failure in a program to release discarded memory, causing impaired performance or failure. © 2015 SwarmOnline
Slide 5
Slide 5 text
YES • Garbage Collection NO • Coding Mishaps DOESN’T THIS GET HANDLED FOR ME? © 2015 SwarmOnline
Slide 6
Slide 6 text
WHAT TOOLS DO WE HAVE © 2015 SwarmOnline
Slide 7
Slide 7 text
CHROME & DEVELOPER TOOLS •Task Manager •Timeline •Profiles © 2015 SwarmOnline
Slide 8
Slide 8 text
TASK MANAGER © 2015 SwarmOnline
Slide 9
Slide 9 text
•1st round of testing •Instantaneous view of memory •Useful for monitoring changes over small periods of time TASK MANAGER © 2015 SwarmOnline
Slide 10
Slide 10 text
TIMELINE © 2015 SwarmOnline
Slide 11
Slide 11 text
• Monitors memory over time • Sudden drops === GC • Look out for two things: • Steady rise in the chart • GC not returning to original memory usage TIMELINE © 2015 SwarmOnline
Slide 12
Slide 12 text
PROFILES © 2015 SwarmOnline
Slide 13
Slide 13 text
PROFILES •Identify increase in objects •Do comparison © 2015 SwarmOnline
Slide 14
Slide 14 text
RECORD HEAP ALLOCATIONS © 2015 SwarmOnline
Slide 15
Slide 15 text
RECORD HEAP ALLOCATIONS © 2015 SwarmOnline
Slide 16
Slide 16 text
N.B. • Memory is skewed just by having Chrome Developer Tools open • Observer Effect © 2015 SwarmOnline
Slide 17
Slide 17 text
OTHER BROWSER TOOLS All of these browsers have tools that can be used to monitor memory • Internet Explorer • Safari • Firefox © 2015 SwarmOnline
Slide 18
Slide 18 text
INTERNET EXPLORER DEVELOPER TOOLS © 2015 SwarmOnline
Slide 19
Slide 19 text
SAFARI FOR DEVELOPERS © 2015 SwarmOnline
Slide 20
Slide 20 text
FIREFOX DEVELOPER © 2015 SwarmOnline
Slide 21
Slide 21 text
TASK MANAGER & WINDOWS TOOLS • Record memory usage in Perfmon & PsTools (PsList) • Plot and view memory usage over time • In our case 1 hour, 24 hours, 1 week, 1 month PsTools PsList © 2015 SwarmOnline
Slide 22
Slide 22 text
TASK MANAGER & WINDOWS TOOLS Pipe data out to CSV for charting © 2015 SwarmOnline
Slide 23
Slide 23 text
AUTOMATE MEMORY MONITORING How do we do this? • Virtual Machines • Auto snapshot every X minutes • Reduce Observer Effect • Graph your results © 2015 SwarmOnline
Slide 24
Slide 24 text
HOW TO DO THIS YOURSELF • Strip it back to basics • App in container only • Send data but don’t enable parsing • Add in the data package • If your app has multiple parsers for different types of data, enable each data packet individually • Gradually add in your controllers and view • Each view will need tested individually • Create your app with only one view enabled • We run over 30 VM’s with different versions of an app to get as much coverage as possible © 2015 SwarmOnline
Slide 25
Slide 25 text
HOW TO DO THIS YOURSELF (2) • If you suspect something is going wrong • Take snapshot • Run code • Take snapshot • Review differences • Obviously new data (e.g. Ajax requests) are going to skew your results between snapshots © 2015 SwarmOnline
Slide 26
Slide 26 text
FINAL THOUGHTS • If all else fails… • Or in extreme circumstances…rm -rf* © 2015 SwarmOnline
Slide 27
Slide 27 text
Andrew Duncan Managing Director, SwarmOnline @andrewduncan andrew@swarmonline.com © 2015 SwarmOnline