Home | History | Annotate | Download | only in resources
      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>
    356