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