| <!doctype html> |
| |
| <!-- |
| about:memory template page |
| --> |
| <html id="t"> |
| <head> |
| <meta charset="utf-8"> |
| <title>About Memory</title> |
| <link rel="stylesheet" href="chrome://resources/css/text_defaults.css"> |
| <link rel="stylesheet" href="chrome://memory-redirect/about_memory.css"> |
| <style> |
| |
| table.list#browserComparison tr:not([class*='firstRow']) > *:nth-child(1), |
| table.list#browserComparison tr:not([class*='firstRow']) > *:nth-child(4), |
| table.list#browserComparison tr.firstRow th:nth-child(1), |
| table.list#browserComparison tr.firstRow th:nth-child(2) { |
| border-right: 1px solid #b5c6de; |
| } |
| table.list#memoryDetails tr:not([class*='firstRow']) > *:nth-child(2), |
| table.list#memoryDetails tr:not([class*='firstRow']) > *:nth-child(5), |
| table.list#memoryDetails tr.firstRow th:nth-child(2), |
| table.list#memoryDetails tr.firstRow th:nth-child(3) { |
| border-right: 1px solid #b5c6de; |
| } |
| </style> |
| <script src="chrome://resources/js/load_time_data.js"></script> |
| <script src="chrome://memory-redirect/memory.js"></script> |
| <script src="chrome://memory-redirect/strings.js"></script> |
| </head> |
| <body> |
| <div id="header"> |
| <h1>About memory</h1> |
| <p> |
| Measuring memory usage in a multi-process browser |
| </p> |
| </div> |
| |
| <div id="content"> |
| <h2> |
| Summary |
| <div class="help"> |
| <div> |
| <p> |
| Summary of memory used by currently active browsers. For browsers |
| which use multiple processes, memory reflects aggregate memory |
| used across all browser processes. |
| </p> |
| <p> |
| For <span jscontent="current_browser_name"></span>, processes used |
| to to display diagnostics information (such as this |
| "about:memory") are excluded. |
| </p> |
| </div> |
| </div> |
| </h2> |
| |
| <table class="list" id="browserComparison"> |
| <colgroup> |
| <col class="name"> |
| <col class="number"> |
| <col class="number"> |
| <col class="number"> |
| <col class="number"> |
| <col class="number"> |
| </colgroup> |
| <tr class="firstRow doNotFilter"> |
| <th> |
| </th> |
| <th colspan="3"> |
| Memory |
| <div class="help"> |
| <div> |
| <p> |
| <strong>Memory</strong> |
| </p> |
| <p> |
| <strong>Private:</strong> |
| Resident memory size that is not shared with any other |
| process. This is the best indicator of browser memory |
| resource usage. |
| </p> |
| <p> |
| <strong>Shared:</strong> |
| Resident memory size that is currently shared with 2 or more |
| processes. Note: For browsers using multiple processes, if we |
| simply added the shared memory of each individual process, |
| this value would be inflated. Therefore, this value is |
| computed as an approximate value for shared memory in each of |
| the browser's processes. Note also that shared memory varies |
| depending on what other processes are running on the system, |
| and may be difficult to measure reproducibly. |
| </p> |
| <p> |
| <strong>Total:</strong> |
| The sum of the private + shared resident memory sizes. |
| </p> |
| </div> |
| </div> |
| </th> |
| <th colspan="2"> |
| Virtual memory |
| <div class="help"> |
| <div> |
| <p> |
| <strong>Virtual memory</strong> |
| </p> |
| <p> |
| <strong>Private:</strong> |
| The resident and paged bytes committed for use by only this |
| process. |
| </p> |
| <p> |
| <strong>Mapped:</strong> |
| Total bytes allocated by this process that are mapped into the |
| view of a section, backed by either system pagefile or file |
| system. This is primarily memory-mapped files. |
| </p> |
| </div> |
| </div> |
| </th> |
| </tr> |
| <tr class="secondRow doNotFilter"> |
| <th class="name"> |
| Browser |
| </th> |
| <th class="name"> |
| Private |
| </th> |
| <th class="number"> |
| Shared |
| </th> |
| <th class="number"> |
| Total |
| </th> |
| <th class="number"> |
| Private |
| </th> |
| <th class="number"> |
| Mapped |
| </th> |
| </tr> |
| <tr jsselect="browsers"> |
| <td class="name"> |
| <div> |
| <strong jscontent="name"></strong> |
| <span jscontent="version"></span> |
| </div> |
| </td> |
| <td class="number"> |
| <span class="th" |
| jscontent="formatNumber(ws_priv + ws_shareable - ws_shared)"> |
| </span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jscontent="formatNumber(ws_shared / processes)"> |
| </span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" |
| jscontent="formatNumber(ws_priv + ws_shareable - ws_shared + |
| (ws_shared / processes))"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jscontent="formatNumber(comm_priv)"></span> |
| <span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jscontent="formatNumber(comm_map)"></span> |
| <span class="k">k</span> |
| </td> |
| </tr> |
| </table> |
| <div class="otherbrowsers" jsdisplay="browsers.length == 1"> |
| Note: This page will show memory use for all running browsers, |
| not just Chrome. |
| </div> |
| <div class="otherbrowsers" jsdisplay="browsers.length > 1"> |
| Note: Chrome includes memory used by plugins, other browsers may not. |
| </div> |
| |
| <br><br><br> |
| |
| <h2> |
| Processes |
| <div class="help"> |
| <div> |
| <p> |
| Details of memory usage for each of |
| <span jscontent="current_browser_name"></span>'s processes. |
| </p> |
| </div> |
| </div> |
| </h2> |
| |
| <table class="list" id="memoryDetails"> |
| <colgroup> |
| <col class="pid"> |
| <col class="name"> |
| <col class="number"> |
| <col class="number"> |
| <col class="number"> |
| <col class="number"> |
| <col class="number"> |
| </colgroup> |
| <tr class="firstRow doNotFilter"> |
| <th> |
| </th> |
| <th> |
| </th> |
| <th colspan="3"> |
| Memory |
| </th> |
| <th colspan="2"> |
| Virtual memory |
| </th> |
| |
| </tr> |
| <tr class="secondRow doNotFilter"> |
| <th class="pid"> |
| PID |
| </th> |
| <th class="name"> |
| Name |
| </th> |
| <th class="number"> |
| Private |
| </th> |
| <th class="number"> |
| Shared |
| </th> |
| <th class="number"> |
| Total |
| </th> |
| <th class="number"> |
| Private |
| </th> |
| <th class="number"> |
| Mapped |
| </th> |
| </tr> |
| |
| <tr jsselect="browzr_data"> |
| <td class="pid"> |
| <span class="th" jscontent="pid"></span> |
| </td> |
| <td class="name"> |
| <div> |
| Browser |
| </div> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_ws_priv', $this.ws_priv + |
| $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv + |
| ws_shareable - ws_shared"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jscontent="ws_shared"></span> |
| <span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_ws_tot', $this.ws_priv + |
| $this.ws_shareable)" jscontent="ws_priv + |
| ws_shareable"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_comm_priv', $this.comm_priv)" |
| jscontent="comm_priv"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_comm_map', $this.comm_map)" |
| jscontent="comm_map"></span><span class="k">k</span> |
| </td> |
| </tr> |
| <tr jsselect="child_data"> |
| <td class="pid"> |
| <span class="th" jscontent="pid"></span> |
| </td> |
| <td class="name"> |
| <div jscontent="child_name"></div> |
| <div jsselect="titles"> |
| <span jscontent="$this"></span><br> |
| </div> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_ws_priv', $this.ws_priv + |
| $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv + |
| ws_shareable - ws_shared"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jscontent="ws_shared"></span><span |
| class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_ws_tot', $this.ws_priv + |
| $this.ws_shareable)" jscontent="ws_priv + |
| ws_shareable"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_comm_priv', $this.comm_priv)" |
| jscontent="comm_priv"></span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" jseval="addToSum('tot_comm_map', $this.comm_map)" |
| jscontent="comm_map"></span><span class="k">k</span> |
| </td> |
| </tr> |
| <tr class="total doNotFilter"> |
| <td class="pid"> |
| </td> |
| <td class="name"> |
| Σ |
| </td> |
| <td class="number"> |
| <span class="th" id="tot_ws_priv">0</span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| </td> |
| <td class="number"> |
| <span class="th" id="tot_ws_tot">0</span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <span class="th" id="tot_comm_priv">0</span><span class="k">k</span> |
| </td> |
| <td class="number"> |
| <div class="help"> |
| <div> |
| <p> |
| This is an approximation. Conceptually, this is the total |
| amount of in-memory pages for the entire logical |
| <span jscontent="current_browser_name"></span> application, |
| without double counting shared pages (e.g. mapped DLLs, |
| SharedMemory bitmaps, etc.) across the browser and renderers. |
| </p> |
| </div> |
| </div> |
| <span class="th" id="tot_comm_map">0</span><span class="k">k</span> |
| </td> |
| </tr> |
| |
| <tr class="noResults"> |
| <td colspan="99"> |
| No results found. |
| </td> |
| </tr> |
| </table> |
| </div> |
| <script src="chrome://resources/js/jstemplate_compiled.js"></script> |
| </body> |
| </html> |