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 |