Update "Performing Memory Analysis". 13/93113/3
authorMaria Guseva <m.guseva@samsung.com>
Thu, 20 Oct 2016 09:08:00 +0000 (12:08 +0300)
committerEditor Lionbridge <TizenEditor.SEL@lionbridge.com>
Fri, 21 Oct 2016 07:32:20 +0000 (10:32 +0300)
- Callstack renamed to CallStack according to the actual name in DA
- Updated Persistent Memory Charts and Range Analysis descriptions

PS3: [LB] Reviewed (some additional quality updates too)

Change-Id: Iff406cefbc769dde8bfc345c6690593443573674

org.tizen.studio/html/common_tools/da_advanced.htm
org.tizen.studio/html/common_tools/da_memory.htm

index a3eee7f..7a07e9c 100644 (file)
@@ -45,7 +45,7 @@
 <p>This topic explains some additional functionality of the Dynamic Analyzer.</p>
 <h2 id="range">Range Inspection</h2>
 <p>You can analyze specific ranges using markers or drag and drop operations.</p>
-<h3>Range Inspection with Markers</h3>
+<h3 id="marker">Range Inspection with Markers</h3>
 <p>You can create markers at specific times and analyze the time between the markers:</p>
 <ol>
   <li>Create the markers by double-clicking a chart or detail table view that has a timestamp.</li>
index 1fb9b19..1880263 100644 (file)
                <p class="toc-title">Content</p>
                <ul class="toc">
                        <li><a href="#memory_chart">Memory Chart</a></li>
-                       <li><a href="#details">Details</a></li> 
-                       <li><a href="#range">Range Analysis</a></li>    
+                       <li><a href="#details">Details</a></li>
+                       <li><a href="#range">Range Analysis</a></li>
                        <li><a href="#statistics">Statistics</a></li>
                        <li><a href="#allocation">Persistent Allocations</a></li>
-                       <li><a href="#callstack">Callstack</a></li>
+                       <li><a href="#callstack">CallStack</a></li>
                        <li><a href="#map">Memory Map</a></li>
                </ul>
        </div></div>
 <ul>
 <li><a href="#memory_chart">Memory chart</a> shows various the memory sizes the system and process, and the heap memory size.</li>
 <li><a href="#details">Details</a> table shows the changes of the system and process memory size.</li>
+<li><a href="#range">Range Analysis</a> table shows the changes of memory allocations between user-defined time markers.</li>
 <li><a href="#statistics">Statistics</a> table shows the changes of memory allocation.</li>
 <li><a href="#allocation">Persistent Allocations</a> table shows the persistent allocations of the heap.</li>
+<li><a href="#callstack">CallStack</a> table shows the call stack of the chosen allocation from the <strong>Persistent Allocations</strong> table.</li>
 <li><a href="#map">Memory Map</a> table shows detailed information of the memory mapping.</li>
 </ul>
 <p class="figure">Figure: Memory usage analysis</p>
        <li><strong>Main Executable</strong>: Allocated heap memory size of the main executable</li></ul>
 <p class="figure">Figure: Heap Allocation chart</p>
 <p align="center"><img alt="Heap Allocation chart" src="../images/da_memory_heap.png" /></p>
-<p>You can also enable the persistent memory charts by selecting <strong>Persistent Memory Charts</strong> in <strong>View &gt; Report</strong>.</p>
-<p>These charts are shown above the heap allocation charts after tracing is stopped or when the trace is loaded from file.</p>
+<p>To show the persistent memory charts, select <strong>View &gt; Report &gt; Persistent Memory Charts</strong>.</p>
+<p>These charts are shown above the heap allocation charts after tracing is stopped or when the trace is loaded from file. You can see the following additional information:</p>
 <ul>
 <li><strong>Process Persistent</strong>: Size of the heap memory already allocated in the process and not freed by the end of the trace.</li>
-<li><strong>Main Executable Persistent</strong>: Size of the heap memory already allocated by the main executable and not freed by the end of the trace.</li>
+<li><strong>Main Executable Persistent/Persistent</strong>: Size of the heap memory already allocated by the main executable or each library, and not freed by the end of the trace.</li>
 </ul>
 <p class="figure">Figure: Heap Allocation Chart with the Persistent Memory Charts option enabled</p>
 <p align="center"><img alt="Heap Allocation chart with Persistent Memory Charts" src="../images/da_memory_persistent_option.png" /></p>
 
 <p>When you select one of the heap allocation charts or its children, the corresponding <strong>Statistics</strong> table entry is also selected. This can be helpful if you need more detailed information on some process or library.</p>
-<p class="figure">Figure: Cross-focusing from Heap Allocation charts to Statistics table</p>
-<p align="center"><img alt="Cross-focusing from Heap Allocation to Statistics" src="../images/da_memory_heap_statistics.png" /></p>
+<p class="figure">Figure: Cross-focusing from Heap Allocation charts to the Statistics table</p>
+<p align="center"><img alt="Cross-focusing from Heap Allocation charts to the Statistics table" src="../images/da_memory_heap_statistics.png" /></p>
 
 </li>
 </ul>
 
 <h2 id="range">Range Analysis</h2>
 
-<p>You can add markers to the timeline to divide the timeline into intervals. The allocation and deallocation statistics are shown for each interval individually.</p>
+<p>You can add markers to the timeline to divide the timeline into intervals. The allocation and deallocation statistics are shown for each interval individually in the <strong>Range Analysis</strong> table.</p>
 <p>To add markers:</p>
 <ul>
-<li>Double click on any chart or the time bar within the tracing interval.</li>
-<li>Double click a row in:
+<li>Double-click any chart or the time bar within the tracing interval.</li>
+<li>Double-click a row in:
 <ul>
-<li><strong>Persistent Allocations</strong> table on the <strong>Memory</strong> page</li>
-<li><strong>Dlog</strong> table or <strong>Call Trace</strong> table on the <strong>Timeline</strong> page</li>
+<li><strong>Persistent Allocations</strong> table on the <strong>Memory</strong> tab</li>
+<li><strong>Dlog</strong> table or <strong>Call Trace</strong> table on the <strong>Timeline</strong> tab</li>
 </ul>
 </li>
 </ul>
-<p>To remove a marker, double click on it.</p>
-<p>Markers and intervals are numbered starting from zero. For more information about the shown statistics data, see <a href="#statistics">Statistics</a>.</p>
+<p>To remove a marker, double-click it.</p>
+<p>Markers and intervals are numbered starting from zero. The <strong>Range Analysis</strong> table allows you to compare the changes in memory usage between time markers. For the explanation of the data shown for each range, see <a href="#statistics">Statistics</a>.</p>
 
-<p class="figure">Figure: Range Analysis view</p>
+<p class="figure">Figure: Range Analysis table</p>
 
-<p align="center"><img alt="Details table" src="../images/da_memory_range.png" /></p>
+<p align="center"><img alt="Range Analysis table" src="../images/da_memory_range.png" /></p>
 
+<p>For more information about using ranges with time markers, see <a href="da_advanced.htm#marker">Range Inspection with Markers</a>.</p>
 
 <h2 id="statistics">Statistics</h2>
 <p>You can check the change of allocation and free by total amount of each library in the <strong>Statistics</strong> table.</p>
 </ul>
 
 <p>When you select one of the <strong>Statistics</strong> table entries, the corresponding heap allocation chart is selected in the charts area. For more information, see <a href="#heap">Heap Allocation chart</a>.</p>
-<p>Note that heap allocation charts are always sorted according to the <strong>Statistics</strong> table entries order. You can change that order by clicking at one of the columns in the <strong>Statistics</strong> table. This is useful if you need to sort the libraries charts, for example by persistent allocations size.</p>
+<p>Note that heap allocation charts are always sorted according to the <strong>Statistics</strong> table entry order. You can change that order by clicking at one of the columns in the <strong>Statistics</strong> table. This is useful if you need to sort the library charts, for example, by persistent allocation size.</p>
 
 <h2 id="allocation">Persistent Allocations</h2>
-<p>You can check the persistent allocations of the heap in the <strong>Persistent Allocations</strong> table. Persistent allocations represent allocations made within selected interval (or in the whole run if no interval is selected) and not freed by the end of interval.</p>
+<p>You can check the persistent allocations of the heap in the <strong>Persistent Allocations</strong> table. The table can show 2 types of data:</p>
+<ul>
+<li>Persistent allocations for the entire trace (when no interval is selected). These are all allocations occurred during the tracing and not freed by the end of the trace. They are shown only after the tracing process is finished.</li>
+<li>Persistent allocations for a selected interval. These are all allocations occurred during the selected interval and not freed by the end of the interval. They can be shown both during tracing and after tracing is stopped. For this type of data, you must select an interval in the timeline charts area.</li>
+</ul>
 
 <p class="figure">Figure: Persistent Allocations table</p>
 <p align="center"><img alt="Persistent Allocations table" src="../images/da_memory_persistent.png" /></p>
 <li><strong>Called Function</strong>: Called allocation function</li>
 </ul>
 
-<p>The table can show 2 types of data:</p>
-<ul>
-<li>Persistent allocations for the entire trace. These are all allocations occurred during the tracing and not freed by the end of the trace. They are shown only after the tracing process is finished.</li>
-<li>Persistent allocations for a selected interval. These are all allocations occurred during the selected interval and not freed by the end of the interval. They can be shown both during tracing and after tracing is stopped. For this type of data, you must select an interval in the <strong>Heap Allocation</strong> chart.</li>
-</ul>
-
-
-<h2 id="callstack">Callstack</h2>
-<p>You can see a call stack for each allocation from the <strong>Persistent Allocations</strong> table in the <strong>Callstack</strong> table. The allocation&#39;s call stack is shown when you select an allocation in the <strong>Persistent Allocations</strong> table.</p>
+<h2 id="callstack">CallStack</h2>
+<p>You can see a call stack for each allocation from the <strong>Persistent Allocations</strong> table in the <strong>CallStack</strong> table. The allocation&#39;s call stack is shown when you select an allocation in the <strong>Persistent Allocations</strong> table.</p>
 
-<p class="figure">Figure: Callstack table</p>
-<p align="center"><img alt="Callstack table" src="../images/da_memory_callstack.png" /></p>
+<p class="figure">Figure: CallStack table</p>
+<p align="center"><img alt="CallStack table" src="../images/da_memory_callstack.png" /></p>
 
 <p>The table contains the following columns:</p>
 <ul>
@@ -236,4 +236,4 @@ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga
 </script>
 
 </body>
-</html>
\ No newline at end of file
+</html>