blob: d1aec89c4fd333db3083f9a434390299ccea1d15 [file] [log] [blame]
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1.0", {packages:["corechart"]});
google.setOnLoadCallback(drawAllCharts);
/*
This funtion creates a data table from previously formatted arrays.
Data array is created by the ProcSnapshot class and formatted as such:
[Timestamp, PID1, PID2, PID3,...], also need descriptive title.
LABEL is a string for the title/axis labels and element name.
MEMTYPE is the variable for the data array.
*/
function drawOneChart(label, memtype) {
var data = google.visualization.arrayToDataTable(memtype);
var options = {
title: label + " [MBs] per PID Over Time",
hAxis: {title: "Seconds since boot",
titleTextStyle: {color: 'green'}},
vAxis: {title: label + " [MB]", titleTextStyle: {color: 'green'}},
};
var cdiv = document.getElementById(label);
var chart = new google.visualization.LineChart(cdiv);
chart.draw(data, options);
}
/* Calls drawChart() for each different type of graph */
function drawAllCharts() {
/* Implementation without calling drawOneChart() ten times, needs work.
var chartypes = {Rss: "RSS", Pss: "PSS",
Private_Clean: "Private Clean",
Private_Dirty: "Private Dirty",
Shared_Clean: "Shared Clean",
Shared_Dirty: "Shared Dirty",
Private: "Private", Shared: "Shared",
Anonymous: "Anonymous", Referenced: "Referenced"};
for (type in chartypes) {
drawOneChart(chartypes[type], type);
} */
drawOneChart("RSS", %(Rss)s);
drawOneChart("PSS", %(Pss)s);
drawOneChart("Private Clean", %(Private_Clean)s);
drawOneChart("Private Dirty", %(Private_Dirty)s);
drawOneChart("Shared Clean", %(Shared_Clean)s);
drawOneChart("Shared Dirty", %(Shared_Dirty)s);
drawOneChart("Private", %(Private)s);
drawOneChart("Shared", %(Shared)s);
drawOneChart("Anonymous", %(Anonymous)s);
drawOneChart("Referenced", %(Referenced)s);
}
</script>
</head>
<body>
<p> Shows memory trends by process IDs over a given period of time. </p>
<p> Data logged starting at %(timestamp)s </br>
System information: %(version)s </br>
ChromeOS release description: %(release)s </br>
[Insert additional data (events, actions, anything else that would help
the user understand the graphs] </p>
</br>
<p> Graph showing proportional set size: private + proportional shared. </p>
<div id="PSS", style="width:900px; height:500px; margin:auto;"></div>
</br>
<p> Graph showing resident set size: memory mapped into RAM. </p>
<div id="RSS", style="width:900px; height:500px; margin:auto;"></div>
</br>
<p> Graph showing total private memory. </p>
<div id="Private", style="width:900px; height:500px; margin:auto;"></div>
</br>
<p> Graph showing total shared memory. </p>
<div id="Shared", style="width:900px; height:500px; margin:auto;"></div>
</br>
<p> Graph showing dirty private memory. </p>
<div id="Private Dirty", style="width:900px; height:500px; margin:auto;">
</div>
</br>
<p> Graph showing clean private memory. </p>
<div id="Private Clean", style="width:900px; height:500px; margin:auto;">
</div>
</br>
<p> Graph showing dirty shared memory. </p>
<div id="Shared Dirty", style="width:900px; height:500px; margin:auto;">
</div>
</br>
<p> Graph showing clean shared memory. </p>
<div id="Shared Clean", style="width:900px; height:500px; margin:auto;">
</div>
</br>
<p> Graph showing total anonymous memory. </p>
<div id="Anonymous", style="width:900px; height:500px; margin:auto;"></div>
</br>
<p> Graph showing total referenced memory. </p>
<div id="Referenced", style="width:900px; height:500px; margin:auto;"></div>
</body>
</html>