134 lines
4.5 KiB
Plaintext
134 lines
4.5 KiB
Plaintext
page.title=Memory Profilers
|
|
meta.tags="android, performance, profiling, tools, memory, memoryleaks, garbagecollection"
|
|
page.tags="android", "performance", "profiling", "tools", "memory", "memoryleaks", "garbagecollection"
|
|
page.metaDescription=Heap Viewer, Memory Monitor, and Allocation Tracker are complementary tools that visualize the memory your app uses.
|
|
page.image=tools/performance/thumbnails/tools_memory_monitor.png
|
|
page.article=true
|
|
|
|
@jd:body
|
|
|
|
<div id="tb" style="margin-left: 7px; margin-bottom: 5px;">
|
|
|
|
<h2>In this document</h2>
|
|
<ul>
|
|
<li><a href="#MemoryMonitor">Memory Monitor</a></li>
|
|
<li><a href="#HeapViewer">Heap Viewer</a></li>
|
|
<li><a href="#AllocationTracker">Allocation Tracker</a></li>
|
|
|
|
</ul>
|
|
|
|
<h2>You should also read</h2>
|
|
<ul>
|
|
<li><a href="{@docRoot}tools/performance/memory-monitor/index.html">
|
|
Memory Monitor Walkthrough</a></li>
|
|
<li><a href="{@docRoot}tools/performance/heap-viewer/index.html">
|
|
Heap Viewer Walkthrough</a></li>
|
|
<li><a href="{@docRoot}tools/performance/allocation-tracker/index.html">
|
|
Allocation Tracker Walkthrough</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<p>Heap Viewer, Memory Monitor, and Allocation Tracker are complementary tools that visualize the
|
|
memory your app uses.</p>
|
|
|
|
<ol>
|
|
<li>Use the
|
|
<a href="{@docRoot}tools/performance/memory-monitor/index.html">
|
|
Memory Monitor Tool</a> to find out whether undesirable garbage collection (GC) event patterns might
|
|
be causing your performance problems.</li>
|
|
|
|
<li>Run
|
|
<a href="{@docRoot}tools/performance/heap-viewer/index.html">
|
|
Heap Viewer</a> to identify object types that get or stay allocated
|
|
unexpectedely or unecessarily.</li>
|
|
|
|
<li>Use
|
|
<a href="{@docRoot}tools/performance/allocation-tracker/index.html">
|
|
Allocation Tracker</a> to identify where in your code the problem might be.</li>
|
|
</ol>
|
|
|
|
<h2 id="MemoryMonitor">Memory Monitor</h2>
|
|
|
|
<div>
|
|
<div class="figure" style="">
|
|
<img src="{@docRoot}images/tools/performance/compare_MemoryMonitor.png"
|
|
alt=""
|
|
height="" />
|
|
<p class="img-caption">
|
|
<strong>Figure 1. </strong>Memory Monitor.
|
|
</p>
|
|
</div>
|
|
|
|
<ul>
|
|
<li>Shows available and used memory as they both change over time <i>for your app</i> in a
|
|
graph, with dips indicating Garbage Collection (GC) events.</li>
|
|
|
|
<li>Provides a quick way to test whether app slowness might be related
|
|
to excessive GC events.</li>
|
|
|
|
<li>Provides a quick way to see whether app crashes might be related
|
|
to running out of memory.</li>
|
|
|
|
<li>Runs live on your application and updates about once a second.</li>
|
|
|
|
<li>Helps quickly identify the potential of memory leaks.</li>
|
|
|
|
<li>Helps identify GC patterns for your application and determine whether
|
|
they are healthy and what you expect.</li>
|
|
|
|
<li>Is easy to use, and it is easy to interpret what you see.</li>
|
|
|
|
<li>However, Memory Monitor does not tell you which objects are the cause
|
|
of your problems, or where in your code it might be.</li>
|
|
</ul>
|
|
|
|
<h2 id="HeapViewer">Heap Viewer</h2>
|
|
|
|
<div class="figure" style="">
|
|
<img src="{@docRoot}images/tools/performance/compare_HeapViewer.png"
|
|
alt=""
|
|
height="" />
|
|
<p class="img-caption">
|
|
<strong>Figure 2. </strong>Heap Viewer.
|
|
</p>
|
|
</div>
|
|
|
|
<ul>
|
|
<li>Shows snapshots of a number of objects allocated by type.</li>
|
|
|
|
<li>Samples data every time a garbage collection event occurs
|
|
naturally or triggered by you.</li>
|
|
|
|
<li>Helps identify which object types might be involved in memory leaks.</li>
|
|
|
|
<li>However, you have to look for changes over time yourself by tracking what's
|
|
happening in the graph.</li>
|
|
<br><br><br><br>
|
|
</ul>
|
|
|
|
<h2 id="AllocationTracker">Allocation Tracker</h2>
|
|
|
|
<div class="figure" style="">
|
|
<img src="{@docRoot}images/tools/performance/compare_AllocationTracker.png"
|
|
alt=""ge
|
|
height="" />
|
|
<p class="img-caption">
|
|
<strong>Figure 3. </strong>Allocation Tracker.
|
|
</p>
|
|
</div>
|
|
|
|
<ul>
|
|
<li>Shows when and where your code allocates object types, their size, allocating thread, and
|
|
stack traces.</li>
|
|
|
|
<li>Helps recognize memory churn through recurring allocation/deallocation patterns.</li>
|
|
|
|
<li>Can be used in combination with Heap Viewer to track down memory leaks. For example, if you
|
|
see a bitmap object resident on the heap, you can find its allocation location with Allocation
|
|
Tracker.</li>
|
|
|
|
<li>However, it takes time and experience to learn to interpret the output from this tool.</li>
|
|
|
|
</ul>
|