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