summaryrefslogtreecommitdiffstats
path: root/chrome/browser/resources/about_memory.html
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/resources/about_memory.html')
-rw-r--r--chrome/browser/resources/about_memory.html566
1 files changed, 283 insertions, 283 deletions
diff --git a/chrome/browser/resources/about_memory.html b/chrome/browser/resources/about_memory.html
index ddae623..0c31cdd 100644
--- a/chrome/browser/resources/about_memory.html
+++ b/chrome/browser/resources/about_memory.html
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
+<!DOCTYPE HTML>
+
<!--
about:memory template page
--->
-<html id="t">
- <head>
- <title>About Memory</title>
-
-<style type="text/css">
+-->
+<html id="t">
+ <head>
+ <title>About Memory</title>
+
+<style>
body {
font-size: 84%;
font-family: Arial, Helvetica, sans-serif;
@@ -15,14 +15,14 @@ body {
margin: 0;
min-width: 45em;
}
-
+
h1 {
font-size: 110%;
font-weight: bold;
color: #4a8ee6;
letter-spacing: -1px;
padding: 0;
- margin: 0;
+ margin: 0;
}
h2 {
font-size: 110%;
@@ -35,10 +35,10 @@ h2 {
color: #3a75bd;
margin-left: -38px;
padding-left: 38px;
-
+
border-top: 1px solid #3a75bd;
padding-top: 0.5em;
-
+
}
h2:first-child {
border-top: 0;
@@ -50,7 +50,7 @@ span.th {
a {
color: black;
}
-
+
div#header {
padding: 0.75em 1em;
padding-top: 0.6em;
@@ -98,7 +98,7 @@ div#header select {
div#header select option {
padding: 0 0.2em;
}
-
+
div#sidebar {
display: none;
float: left;
@@ -107,13 +107,13 @@ div#sidebar {
min-height: 20em;
padding: 0.75em;
padding-top: 0;
-
+
border-right: 1px solid #cfcfcf;
}
div#content {
margin-left: 0px;
}
-
+
div.viewOptions {
float: right;
font-size: 92%;
@@ -133,15 +133,15 @@ div.viewOptions input {
padding: 0.3em 0.4em;
}
div.viewOptions input:focus {
- border-color: white;
+ border-color: white;
}
-
+
.k {
opacity: 0.4;
font-weight: normal;
padding-left: 0.1em;
}
-
+
.legend {
font-size: 84%;
padding: 0;
@@ -158,7 +158,7 @@ div.viewOptions input:focus {
font-weight: normal;
color: black;
display: inline;
- font-size: 100%;
+ font-size: 100%;
}
.legend .swatch {
opacity: 0.66;
@@ -170,7 +170,7 @@ div.viewOptions input:focus {
.legend .swatch.heavyUse {
background: #cc0000;
}
-
+
table.list {
width: 100%;
line-height: 200%;
@@ -197,7 +197,7 @@ table.list .firstRow th {
line-height: 100%;
}
table.list .secondRow * {
- text-align: left;
+ text-align: left;
border-bottom: 1px solid #b5c6de;
}
table.list td {
@@ -213,11 +213,11 @@ table.list tr th:nth-last-child(1) {
table.list:not([class*='filtered']) .tab .name {
padding-left: 1.5em;
}
-
+
table.list .name {
width: 100%;
}
-
+
table.list .name div {
height: 1.6em;
overflow: hidden;
@@ -260,19 +260,19 @@ table.list .noResults td {
padding: 3em 0;
color: #3f3f3f;
}
-
+
.heavyUse {
color: #cc0000;
font-weight: bold;
}
-
+
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;
}
-
+
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),
@@ -284,7 +284,7 @@ table.list#browserComparison .name {
background-position: 5px center;
background-repeat: no-repeat;
}
-
+
div.help {
display: inline-block;
width: 14px;
@@ -320,11 +320,11 @@ div.otherbrowsers {
width: 100%;
text-align: center;
}
-</style>
-<script>
+</style>
+<script>
function reload() {
if (document.getElementById('helpTooltip'))
- return;
+ return;
history.go(0);
}
@@ -339,7 +339,7 @@ function formatNumber(str) {
}
return x1;
}
-
+
function addToSum(id, value) {
var target = document.getElementById(id);
var sum = parseInt(target.innerHTML);
@@ -355,21 +355,21 @@ function handleHelpTooltipMouseOver(event) {
el.style.left = 0;
el.style.visibility = 'hidden';
document.body.appendChild(el);
-
+
var width = el.offsetWidth;
var height = el.offsetHeight;
if (event.pageX - width - 50 + document.body.scrollLeft >= 0 ) {
- el.style.left = (event.pageX - width - 20) + 'px';
+ el.style.left = (event.pageX - width - 20) + 'px';
} else {
- el.style.left = (event.pageX + 20) + 'px';
+ el.style.left = (event.pageX + 20) + 'px';
}
-
-
- if (event.pageY - height - 50 + document.body.scrollTop >= 0) {
- el.style.top = (event.pageY - height - 20) + 'px';
+
+
+ if (event.pageY - height - 50 + document.body.scrollTop >= 0) {
+ el.style.top = (event.pageY - height - 20) + 'px';
} else {
- el.style.top = (event.pageY + 20) + 'px';
+ el.style.top = (event.pageY + 20) + 'px';
}
el.style.visibility = 'visible';
@@ -382,306 +382,306 @@ function handleHelpTooltipMouseOut(event) {
function enableHelpTooltips() {
var helpEls = document.getElementsByClassName('help');
-
+
for (var i = 0, helpEl; helpEl = helpEls[i]; i++) {
helpEl.onmouseover = handleHelpTooltipMouseOver;
helpEl.onmouseout = handleHelpTooltipMouseOut;
}
}
-
+
//setInterval("reload()", 10000);
-</script>
-</head>
-<body>
- <div id='header'>
- <h1>
+</script>
+</head>
+<body>
+ <div id='header'>
+ <h1>
About memory
- </h1>
- <p>
+ </h1>
+ <p>
Measuring memory usage in a multi-process browser
- </p>
- </div>
-
- <div id='content'>
- <h2>
+ </p>
+ </div>
+
+ <div id='content'>
+ <h2>
Summary
- <div class='help'>
- <div>
- <p>
+ <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>
For Chromium, 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'>
+ </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.
+ <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
+ </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>
+ </p>
+ <p>
+ <strong>Total:</strong>
The sum of the private + shared resident memory sizes.
- </p>
- </div>
- </div>
- </th>
- <th colspan='2'>
+ </p>
+ </div>
+ </div>
+ </th>
+ <th colspan='2'>
Virtual memory
- <div class='help'>
- <div>
- <p>
- <strong>Virtual memory</strong>
- </p>
- <p>
- <strong>Private:</strong>
+ <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>
+ </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'>
+ </p>
+ </div>
+ </div>
+ </th>
+ </tr>
+ <tr class='secondRow doNotFilter'>
+ <th class='name'>
Browser
- </th>
- <th class='name'>
+ </th>
+ <th class='name'>
Private
</th>
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Shared
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Total
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Private
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Mapped
- </th>
- </tr>
- <tr jsselect="browsers">
- <td class='name'>
- <div>
+ </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>
+ </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: If other browsers (IE, Firefox, Opera, Safari) are running,
I'll show their memory details here.
</div>
-
- <br /><br /><br />
-
- <h2>
+
+ <br /><br /><br />
+
+ <h2>
Processes
- <div class='help'>
- <div>
- <p>
+ <div class='help'>
+ <div>
+ <p>
Details of memory usage for each of Chromium'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'>
+ </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'>
+ <th colspan='2'>
Virtual memory
- </th>
-
- </tr>
- <tr class='secondRow doNotFilter'>
- <th class='pid'>
+ </th>
+
+ </tr>
+ <tr class='secondRow doNotFilter'>
+ <th class='pid'>
PID
- </th>
- <th class='name'>
+ </th>
+ <th class='name'>
Name
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Private
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Shared
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Total
- </th>
- <th class='number'>
+ </th>
+ <th class='number'>
Private
- </th>
- <th class='number'>
+ </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>
+ </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>
+ </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'>
+ </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'>
&Sigma;
- </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>
+ <td class='number'>
+ <span class='th' id="tot_ws_priv">0</span><span class='k'>k</span>
+ </td>
<td class='number'>
- <div class='help'>
- <div>
- <p>
+ </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 Chromium
- application, without double counting shared pages (e.g.
+ 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'>
+ </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>
-</body>
-<script>
+ </td>
+ </tr>
+ </table>
+ </div>
+</body>
+<script>
enableHelpTooltips();
-</script>
-</html>
+</script>
+</html>