- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / about_memory.html
1 <!DOCTYPE HTML>
2
3 <!--
4 about:memory template page
5 -->
6 <html id="t">
7 <head>
8   <title>About Memory</title>
9   <link rel="stylesheet" href="chrome://memory-redirect/about_memory.css">
10 <style>
11 body {
12   font-family: Helvetica, Arial, sans-serif;
13 }
14 div#header select {
15   font-family: Helvetica, Arial, sans-serif;
16 }
17 div.otherbrowsers {
18   font-family: Helvetica, Arial, sans-serif;
19 }
20 table.list#browserComparison tr:not([class*='firstRow']) > *:nth-child(1),
21 table.list#browserComparison tr:not([class*='firstRow']) > *:nth-child(4),
22 table.list#browserComparison tr.firstRow th:nth-child(1),
23 table.list#browserComparison tr.firstRow th:nth-child(2) {
24   border-right: 1px solid #b5c6de;
25 }
26 table.list#memoryDetails tr:not([class*='firstRow']) > *:nth-child(2),
27 table.list#memoryDetails tr:not([class*='firstRow']) > *:nth-child(5),
28 table.list#memoryDetails tr.firstRow th:nth-child(2),
29 table.list#memoryDetails tr.firstRow th:nth-child(3) {
30   border-right: 1px solid #b5c6de;
31 }
32 </style>
33 <script src="chrome://resources/js/load_time_data.js"></script>
34 <script src="chrome://memory-redirect/memory.js"></script>
35 <script src="chrome://memory-redirect/strings.js"></script>
36 </head>
37 <body>
38     <div id='header'>
39       <h1>
40         About memory
41       </h1>
42       <p>
43         Measuring memory usage in a multi-process browser
44       </p>
45     </div>
46
47     <div id='content'>
48       <h2>
49         Summary
50         <div class='help'>
51           <div>
52             <p>
53               Summary of memory used by currently active browsers. For browsers
54               which use multiple processes, memory reflects aggregate memory
55               used across all browser processes.
56             </p>
57             <p>
58               For <span jscontent="current_browser_name"></span>, processes used
59               to to display diagnostics information (such as this
60               "about:memory") are excluded.
61             </p>
62           </div>
63         </div>
64       </h2>
65
66       <table class='list' id='browserComparison'>
67         <colgroup>
68           <col class='name'>
69           <col class='number'>
70           <col class='number'>
71           <col class='number'>
72           <col class='number'>
73           <col class='number'>
74         </colgroup>
75         <tr class='firstRow doNotFilter'>
76           <th>
77           </th>
78           <th colspan='3'>
79             Memory
80             <div class='help'>
81               <div>
82                 <p>
83                   <strong>Memory</strong>
84                 </p>
85                 <p>
86                   <strong>Private:</strong>
87                   Resident memory size that is not shared with any other
88                   process.  This is the best indicator of browser memory
89                   resource usage.
90                 </p>
91                 <p>
92                   <strong>Shared:</strong>
93                   Resident memory size that is currently shared with 2 or more
94                   processes.  Note: For browsers using multiple processes, if we
95                   simply added the shared memory of each individual process,
96                   this value would be inflated. Therefore, this value is
97                   computed as an approximate value for shared memory in each of
98                   the browser's processes. Note also that shared memory varies
99                   depending on what other processes are running on the system,
100                   and may be difficult to measure reproducibly.
101                 </p>
102                 <p>
103                   <strong>Total:</strong>
104                   The sum of the private + shared resident memory sizes.
105                 </p>
106               </div>
107             </div>
108           </th>
109           <th colspan='2'>
110             Virtual memory
111             <div class='help'>
112               <div>
113                 <p>
114                   <strong>Virtual memory</strong>
115                 </p>
116                 <p>
117                   <strong>Private:</strong>
118                   The resident and paged bytes committed for use by only this
119                   process.
120                 </p>
121                 <p>
122                   <strong>Mapped:</strong>
123                   Total bytes allocated by this process that are mapped into the
124                   view of a section, backed by either system pagefile or file
125                   system. This is primarily memory-mapped files.
126                 </p>
127               </div>
128             </div>
129           </th>
130         </tr>
131         <tr class='secondRow doNotFilter'>
132           <th class='name'>
133             Browser
134           </th>
135           <th class='name'>
136             Private
137           </th>
138           <th class='number'>
139             Shared
140           </th>
141           <th class='number'>
142             Total
143           </th>
144           <th class='number'>
145             Private
146           </th>
147           <th class='number'>
148             Mapped
149           </th>
150         </tr>
151         <tr jsselect="browsers">
152           <td class='name'>
153             <div>
154               <strong jscontent="name"></strong>
155               <span jscontent="version"></span>
156             </div>
157           </td>
158           <td class='number'>
159             <span class='th'
160                 jscontent="formatNumber(ws_priv + ws_shareable - ws_shared)">
161             </span><span class='k'>k</span>
162           </td>
163           <td class='number'>
164             <span class='th' jscontent="formatNumber(ws_shared / processes)">
165             </span><span class='k'>k</span>
166           </td>
167           <td class='number'>
168             <span class='th'
169                 jscontent="formatNumber(ws_priv + ws_shareable - ws_shared +
170                 (ws_shared / processes))"></span><span class='k'>k</span>
171           </td>
172           <td class='number'>
173             <span class='th' jscontent="formatNumber(comm_priv)"></span>
174             <span class='k'>k</span>
175           </td>
176           <td class='number'>
177             <span class='th' jscontent="formatNumber(comm_map)"></span>
178             <span class='k'>k</span>
179           </td>
180         </tr>
181       </table>
182       <div class=otherbrowsers jsdisplay="browsers.length == 1">
183         Note: If other browsers (e.g. IE, Firefox, Safari) are running,
184         I'll show their memory details here.
185       </div>
186
187       <br><br><br>
188
189       <h2>
190         Processes
191         <div class='help'>
192           <div>
193             <p>
194               Details of memory usage for each of
195               <span jscontent="current_browser_name"></span>'s processes.
196             </p>
197           </div>
198         </div>
199       </h2>
200
201       <table class='list' id='memoryDetails'>
202         <colgroup>
203           <col class='pid'>
204           <col class='name'>
205           <col class='number'>
206           <col class='number'>
207           <col class='number'>
208           <col class='number'>
209           <col class='number'>
210         </colgroup>
211         <tr class='firstRow doNotFilter'>
212           <th>
213           </th>
214           <th>
215           </th>
216           <th colspan='3'>
217             Memory
218           </th>
219           <th colspan='2'>
220             Virtual memory
221           </th>
222
223         </tr>
224         <tr class='secondRow doNotFilter'>
225           <th class='pid'>
226             PID
227           </th>
228           <th class='name'>
229             Name
230           </th>
231           <th class='number'>
232             Private
233           </th>
234           <th class='number'>
235             Shared
236           </th>
237           <th class='number'>
238             Total
239           </th>
240           <th class='number'>
241             Private
242           </th>
243           <th class='number'>
244             Mapped
245           </th>
246         </tr>
247
248         <tr jsselect="browzr_data">
249           <td class='pid'>
250             <span class='th' jscontent="pid"></span>
251           </td>
252           <td class='name'>
253             <div>
254               Browser
255             </div>
256           </td>
257           <td class='number'>
258             <span class='th' jseval="addToSum('tot_ws_priv', $this.ws_priv +
259                 $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv +
260             ws_shareable - ws_shared"></span><span class='k'>k</span>
261           </td>
262           <td class='number'>
263             <span class='th' jscontent="ws_shared"></span>
264             <span class='k'>k</span>
265           </td>
266           <td class='number'>
267             <span class='th' jseval="addToSum('tot_ws_tot', $this.ws_priv +
268                 $this.ws_shareable)" jscontent="ws_priv +
269             ws_shareable"></span><span class='k'>k</span>
270           </td>
271           <td class='number'>
272             <span class='th' jseval="addToSum('tot_comm_priv', $this.comm_priv)"
273                 jscontent="comm_priv"></span><span class='k'>k</span>
274           </td>
275           <td class='number'>
276             <span class='th' jseval="addToSum('tot_comm_map', $this.comm_map)"
277                 jscontent="comm_map"></span><span class='k'>k</span>
278           </td>
279         </tr>
280         <tr jsselect="child_data">
281           <td class='pid'>
282             <span class='th' jscontent="pid"></span>
283           </td>
284           <td class='name'>
285             <div jscontent="child_name"></div>
286             <div jsselect="titles">
287               <span jscontent="$this"></span><br>
288             </div>
289           </td>
290           <td class='number'>
291             <span class='th' jseval="addToSum('tot_ws_priv', $this.ws_priv +
292                 $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv +
293             ws_shareable - ws_shared"></span><span class='k'>k</span>
294           </td>
295           <td class='number'>
296             <span class='th' jscontent="ws_shared"></span><span
297                 class='k'>k</span>
298           </td>
299           <td class='number'>
300             <span class='th' jseval="addToSum('tot_ws_tot', $this.ws_priv +
301                 $this.ws_shareable)" jscontent="ws_priv +
302             ws_shareable"></span><span class='k'>k</span>
303           </td>
304           <td class='number'>
305             <span class='th' jseval="addToSum('tot_comm_priv', $this.comm_priv)"
306                 jscontent="comm_priv"></span><span class='k'>k</span>
307           </td>
308           <td class='number'>
309             <span class='th' jseval="addToSum('tot_comm_map', $this.comm_map)"
310                 jscontent="comm_map"></span><span class='k'>k</span>
311           </td>
312         </tr>
313         <tr class='total doNotFilter'>
314           <td class='pid'>
315           </td>
316           <td class='name'>
317             &Sigma;
318           </td>
319           <td class='number'>
320             <span class='th' id="tot_ws_priv">0</span><span class='k'>k</span>
321           </td>
322           <td class='number'>
323           </td>
324           <td class='number'>
325             <span class='th' id="tot_ws_tot">0</span><span class='k'>k</span>
326           </td>
327           <td class='number'>
328             <span class='th' id="tot_comm_priv">0</span><span class='k'>k</span>
329           </td>
330           <td class='number'>
331             <div class='help'>
332               <div>
333                 <p>
334                   This is an approximation. Conceptually, this is the total
335                   amount of in-memory pages for the entire logical
336                   <span jscontent="current_browser_name"></span> application,
337                   without double counting shared pages (e.g.  mapped DLLs,
338                   SharedMemory bitmaps, etc.) across the browser and renderers.
339                 </p>
340               </div>
341             </div>
342             <span class='th' id="tot_comm_map">0</span><span class='k'>k</span>
343           </td>
344         </tr>
345
346         <tr class='noResults'>
347           <td colspan='99'>
348             No results found.
349           </td>
350         </tr>
351       </table>
352     </div>
353     <script src="chrome://resources/js/jstemplate_compiled.js"></script>
354 </body>
355 </html>