| 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: If other browsers (e.g. IE, Firefox, Safari) are running, |
| 184 I'll show their memory details here. | 184 I'll show their memory details here. |
| 185 </div> | 185 </div> |
| 186 <div class="otherbrowsers" jsdisplay="browsers.length > 1"> |
| 187 Note: The memory details reported for some other browsers (e.g. IE, |
| 188 Firefox, Safari) typically don't include the memory used by plugins such |
| 189 as Flash. |
| 190 </div> |
| 186 | 191 |
| 187 <br><br><br> | 192 <br><br><br> |
| 188 | 193 |
| 189 <h2> | 194 <h2> |
| 190 Processes | 195 Processes |
| 191 <div class='help'> | 196 <div class="help"> |
| 192 <div> | 197 <div> |
| 193 <p> | 198 <p> |
| 194 Details of memory usage for each of | 199 Details of memory usage for each of |
| 195 <span jscontent="current_browser_name"></span>'s processes. | 200 <span jscontent="current_browser_name"></span>'s processes. |
| 196 </p> | 201 </p> |
| 197 </div> | 202 </div> |
| 198 </div> | 203 </div> |
| 199 </h2> | 204 </h2> |
| 200 | 205 |
| 201 <table class='list' id='memoryDetails'> | 206 <table class="list" id="memoryDetails"> |
| 202 <colgroup> | 207 <colgroup> |
| 203 <col class='pid'> | 208 <col class="pid"> |
| 204 <col class='name'> | 209 <col class="name"> |
| 205 <col class='number'> | 210 <col class="number"> |
| 206 <col class='number'> | 211 <col class="number"> |
| 207 <col class='number'> | 212 <col class="number"> |
| 208 <col class='number'> | 213 <col class="number"> |
| 209 <col class='number'> | 214 <col class="number"> |
| 210 </colgroup> | 215 </colgroup> |
| 211 <tr class='firstRow doNotFilter'> | 216 <tr class="firstRow doNotFilter"> |
| 212 <th> | 217 <th> |
| 213 </th> | 218 </th> |
| 214 <th> | 219 <th> |
| 215 </th> | 220 </th> |
| 216 <th colspan='3'> | 221 <th colspan="3"> |
| 217 Memory | 222 Memory |
| 218 </th> | 223 </th> |
| 219 <th colspan='2'> | 224 <th colspan="2"> |
| 220 Virtual memory | 225 Virtual memory |
| 221 </th> | 226 </th> |
| 222 | 227 |
| 223 </tr> | 228 </tr> |
| 224 <tr class='secondRow doNotFilter'> | 229 <tr class="secondRow doNotFilter"> |
| 225 <th class='pid'> | 230 <th class="pid"> |
| 226 PID | 231 PID |
| 227 </th> | 232 </th> |
| 228 <th class='name'> | 233 <th class="name"> |
| 229 Name | 234 Name |
| 230 </th> | 235 </th> |
| 231 <th class='number'> | 236 <th class="number"> |
| 232 Private | 237 Private |
| 233 </th> | 238 </th> |
| 234 <th class='number'> | 239 <th class="number"> |
| 235 Shared | 240 Shared |
| 236 </th> | 241 </th> |
| 237 <th class='number'> | 242 <th class="number"> |
| 238 Total | 243 Total |
| 239 </th> | 244 </th> |
| 240 <th class='number'> | 245 <th class="number"> |
| 241 Private | 246 Private |
| 242 </th> | 247 </th> |
| 243 <th class='number'> | 248 <th class="number"> |
| 244 Mapped | 249 Mapped |
| 245 </th> | 250 </th> |
| 246 </tr> | 251 </tr> |
| 247 | 252 |
| 248 <tr jsselect="browzr_data"> | 253 <tr jsselect="browzr_data"> |
| 249 <td class='pid'> | 254 <td class="pid"> |
| 250 <span class='th' jscontent="pid"></span> | 255 <span class="th" jscontent="pid"></span> |
| 251 </td> | 256 </td> |
| 252 <td class='name'> | 257 <td class="name"> |
| 253 <div> | 258 <div> |
| 254 Browser | 259 Browser |
| 255 </div> | 260 </div> |
| 256 </td> | 261 </td> |
| 257 <td class='number'> | 262 <td class="number"> |
| 258 <span class='th' jseval="addToSum('tot_ws_priv', $this.ws_priv + | 263 <span class="th" jseval="addToSum('tot_ws_priv', $this.ws_priv + |
| 259 $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv + | 264 $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv + |
| 260 ws_shareable - ws_shared"></span><span class='k'>k</span> | 265 ws_shareable - ws_shared"></span><span class="k">k</span> |
| 261 </td> | 266 </td> |
| 262 <td class='number'> | 267 <td class="number"> |
| 263 <span class='th' jscontent="ws_shared"></span> | 268 <span class="th" jscontent="ws_shared"></span> |
| 264 <span class='k'>k</span> | 269 <span class="k">k</span> |
| 265 </td> | 270 </td> |
| 266 <td class='number'> | 271 <td class="number"> |
| 267 <span class='th' jseval="addToSum('tot_ws_tot', $this.ws_priv + | 272 <span class="th" jseval="addToSum('tot_ws_tot', $this.ws_priv + |
| 268 $this.ws_shareable)" jscontent="ws_priv + | 273 $this.ws_shareable)" jscontent="ws_priv + |
| 269 ws_shareable"></span><span class='k'>k</span> | 274 ws_shareable"></span><span class="k">k</span> |
| 270 </td> | 275 </td> |
| 271 <td class='number'> | 276 <td class="number"> |
| 272 <span class='th' jseval="addToSum('tot_comm_priv', $this.comm_priv)" | 277 <span class="th" jseval="addToSum('tot_comm_priv', $this.comm_priv)" |
| 273 jscontent="comm_priv"></span><span class='k'>k</span> | 278 jscontent="comm_priv"></span><span class="k">k</span> |
| 274 </td> | 279 </td> |
| 275 <td class='number'> | 280 <td class="number"> |
| 276 <span class='th' jseval="addToSum('tot_comm_map', $this.comm_map)" | 281 <span class="th" jseval="addToSum('tot_comm_map', $this.comm_map)" |
| 277 jscontent="comm_map"></span><span class='k'>k</span> | 282 jscontent="comm_map"></span><span class="k">k</span> |
| 278 </td> | 283 </td> |
| 279 </tr> | 284 </tr> |
| 280 <tr jsselect="child_data"> | 285 <tr jsselect="child_data"> |
| 281 <td class='pid'> | 286 <td class="pid"> |
| 282 <span class='th' jscontent="pid"></span> | 287 <span class="th" jscontent="pid"></span> |
| 283 </td> | 288 </td> |
| 284 <td class='name'> | 289 <td class="name"> |
| 285 <div jscontent="child_name"></div> | 290 <div jscontent="child_name"></div> |
| 286 <div jsselect="titles"> | 291 <div jsselect="titles"> |
| 287 <span jscontent="$this"></span><br> | 292 <span jscontent="$this"></span><br> |
| 288 </div> | 293 </div> |
| 289 </td> | 294 </td> |
| 290 <td class='number'> | 295 <td class="number"> |
| 291 <span class='th' jseval="addToSum('tot_ws_priv', $this.ws_priv + | 296 <span class="th" jseval="addToSum('tot_ws_priv', $this.ws_priv + |
| 292 $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv + | 297 $this.ws_shareable - $this.ws_shared)" jscontent="ws_priv + |
| 293 ws_shareable - ws_shared"></span><span class='k'>k</span> | 298 ws_shareable - ws_shared"></span><span class="k">k</span> |
| 294 </td> | 299 </td> |
| 295 <td class='number'> | 300 <td class="number"> |
| 296 <span class='th' jscontent="ws_shared"></span><span | 301 <span class="th" jscontent="ws_shared"></span><span |
| 297 class='k'>k</span> | 302 class="k">k</span> |
| 298 </td> | 303 </td> |
| 299 <td class='number'> | 304 <td class="number"> |
| 300 <span class='th' jseval="addToSum('tot_ws_tot', $this.ws_priv + | 305 <span class="th" jseval="addToSum('tot_ws_tot', $this.ws_priv + |
| 301 $this.ws_shareable)" jscontent="ws_priv + | 306 $this.ws_shareable)" jscontent="ws_priv + |
| 302 ws_shareable"></span><span class='k'>k</span> | 307 ws_shareable"></span><span class="k">k</span> |
| 303 </td> | 308 </td> |
| 304 <td class='number'> | 309 <td class="number"> |
| 305 <span class='th' jseval="addToSum('tot_comm_priv', $this.comm_priv)" | 310 <span class="th" jseval="addToSum('tot_comm_priv', $this.comm_priv)" |
| 306 jscontent="comm_priv"></span><span class='k'>k</span> | 311 jscontent="comm_priv"></span><span class="k">k</span> |
| 307 </td> | 312 </td> |
| 308 <td class='number'> | 313 <td class="number"> |
| 309 <span class='th' jseval="addToSum('tot_comm_map', $this.comm_map)" | 314 <span class="th" jseval="addToSum('tot_comm_map', $this.comm_map)" |
| 310 jscontent="comm_map"></span><span class='k'>k</span> | 315 jscontent="comm_map"></span><span class="k">k</span> |
| 311 </td> | 316 </td> |
| 312 </tr> | 317 </tr> |
| 313 <tr class='total doNotFilter'> | 318 <tr class="total doNotFilter"> |
| 314 <td class='pid'> | 319 <td class="pid"> |
| 315 </td> | 320 </td> |
| 316 <td class='name'> | 321 <td class="name"> |
| 317 Σ | 322 Σ |
| 318 </td> | 323 </td> |
| 319 <td class='number'> | 324 <td class="number"> |
| 320 <span class='th' id="tot_ws_priv">0</span><span class='k'>k</span> | 325 <span class="th" id="tot_ws_priv">0</span><span class="k">k</span> |
| 321 </td> | 326 </td> |
| 322 <td class='number'> | 327 <td class="number"> |
| 323 </td> | 328 </td> |
| 324 <td class='number'> | 329 <td class="number"> |
| 325 <span class='th' id="tot_ws_tot">0</span><span class='k'>k</span> | 330 <span class="th" id="tot_ws_tot">0</span><span class="k">k</span> |
| 326 </td> | 331 </td> |
| 327 <td class='number'> | 332 <td class="number"> |
| 328 <span class='th' id="tot_comm_priv">0</span><span class='k'>k</span> | 333 <span class="th" id="tot_comm_priv">0</span><span class="k">k</span> |
| 329 </td> | 334 </td> |
| 330 <td class='number'> | 335 <td class="number"> |
| 331 <div class='help'> | 336 <div class="help"> |
| 332 <div> | 337 <div> |
| 333 <p> | 338 <p> |
| 334 This is an approximation. Conceptually, this is the total | 339 This is an approximation. Conceptually, this is the total |
| 335 amount of in-memory pages for the entire logical | 340 amount of in-memory pages for the entire logical |
| 336 <span jscontent="current_browser_name"></span> application, | 341 <span jscontent="current_browser_name"></span> application, |
| 337 without double counting shared pages (e.g. mapped DLLs, | 342 without double counting shared pages (e.g. mapped DLLs, |
| 338 SharedMemory bitmaps, etc.) across the browser and renderers. | 343 SharedMemory bitmaps, etc.) across the browser and renderers. |
| 339 </p> | 344 </p> |
| 340 </div> | 345 </div> |
| 341 </div> | 346 </div> |
| 342 <span class='th' id="tot_comm_map">0</span><span class='k'>k</span> | 347 <span class="th" id="tot_comm_map">0</span><span class="k">k</span> |
| 343 </td> | 348 </td> |
| 344 </tr> | 349 </tr> |
| 345 | 350 |
| 346 <tr class='noResults'> | 351 <tr class="noResults"> |
| 347 <td colspan='99'> | 352 <td colspan="99"> |
| 348 No results found. | 353 No results found. |
| 349 </td> | 354 </td> |
| 350 </tr> | 355 </tr> |
| 351 </table> | 356 </table> |
| 352 </div> | 357 </div> |
| 353 <script src="chrome://resources/js/jstemplate_compiled.js"></script> | 358 <script src="chrome://resources/js/jstemplate_compiled.js"></script> |
| 354 </body> | 359 </body> |
| 355 </html> | 360 </html> |
| OLD | NEW |