memory leak analysis in android games
TRANSCRIPT
![Page 1: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/1.jpg)
Memory Leak Analysisin
Android Games
Heghine HakobyanSoftware Engineer
![Page 2: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/2.jpg)
Why we need memory analysis?
● Low FPS
● Frequent Freezes
● Out of Memories
![Page 3: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/3.jpg)
Why we need memory analysis?
Improved Performance
Happy Users
No Memory Leaks
![Page 4: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/4.jpg)
Problems to Consider
● A lot of consequent GC calls
- because of temporary allocations
● Not enough memory
- for permanent objects
![Page 5: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/5.jpg)
Garbage Collector
GC_CONCURENT freed 24K, 18% free 1572K/19207K, paused 1ms+4ms
![Page 6: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/6.jpg)
How GC works?
exampleA
exampleB......
exampleA is dominator of exampleB
![Page 7: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/7.jpg)
Dominator Tree in GC
exampleA
exampleB......
r
...
a
...
......
![Page 8: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/8.jpg)
Dominator Tree in GC
exampleA
exampleB......
r
...
a
...
......
![Page 9: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/9.jpg)
Allocation Tracker
Shows where and what type of objects are being allocated at current time
![Page 10: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/10.jpg)
Going Deeper: Heap Dump
Gives huge amount of statistical information about your game’s current heap state
Use it withEclipse Memory Analyzer (MAT)
![Page 11: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/11.jpg)
Heap Dump Components
DominatorTree
HistogramView
Heap Dump
![Page 12: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/12.jpg)
Heap Dump Example
![Page 13: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/13.jpg)
Example Game
![Page 14: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/14.jpg)
Obstacle
Target
Soldiers
Vikings Battle
![Page 15: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/15.jpg)
The Problem
● A lot of soldiers (~300)
● Moving from start position to target
● Using A* path finding algorithm
Low Performance
![Page 16: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/16.jpg)
Soldier Statistics
Type Bowman
Shallow Heap 312 b
Retained Heap ~22 kb
Animation Component
Retained Heap~20 kb
![Page 17: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/17.jpg)
Solution: Object Pooling
Bowman b = getSoldierFromPool();b.initialize();
Use object as you need
b.reset();
Heap
![Page 18: Memory Leak Analysis in Android Games](https://reader033.vdocument.in/reader033/viewer/2022051404/58ee1d991a28ab652a8b46b9/html5/thumbnails/18.jpg)
Thank You!!!
Remember!Memory Analysis are
IMPORTANT!
Questions?