2. Why is performance important?
Continuously evaluate performance during normal
debugging
PerfTips
Memory tool
CPU graph
Drill into the details of a performance issue
Timeline tool
CPU tool
Standalone Profiler
18/11/17 2
Agenda
3. 18/11/17 3
Why is performance important?
0%
10%
20%
30%
40%
50%
60%
70%
80%
App Freezes Crashes Slow Responsiveness Heavy Battery Usage
Reasons for bad reviews
7. Shows CPU utilization across all available cores
Spikes can be interesting, even if less than 100%
Available after debugging session has stopped
18/11/17 7
CPU graph
8. The garbage collector serves as an automatic memory
manager
• Enables you to develop your application without having to
free memory
• Allocates objects on the managed heap efficiently
• Reclaims objects that are no longer being used, clears their
memory, and keeps the memory available for future
allocations. Managed objects automatically get clean
content to start with, so their constructors do not have to
initialize every data field
• Provides memory safety by making sure that an object
cannot use the content of another object
18/11/17 8
Fundamentals of Garbage Collection
11. Compare memory consumption over time
• Provides sizes and count for each type
• Filters out objects marked for garbage collection (.NET)
Works for both C++ and .NET apps
18/11/17 11
Memory tool
15. Identify app performance issues due to
• Parsing & Layout
• Application code or other runtime CPU consumption
Monitor FPS throughput
18/11/17 15
Timeline tool
16. Records which functions are using the CPU the most
• Takes a call stack from the CPU every millisecond
• Shows aggregate report
Collects mixed mode stacks (.NET & C++)
18/11/17 16
CPU tool