mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-06-09 09:58:57 +00:00
53 lines
1.5 KiB
HTML
53 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
|
<script>
|
|
var counter = 0;
|
|
var total = 0;
|
|
// test 1 is with innerText change, test 2 without
|
|
var test = 1;
|
|
|
|
var testruns = 500;
|
|
// Keep the innerText results somewhere, trying to make sure jit doesn't
|
|
// optimize out .innerText getter this way.
|
|
var accessCount = 1000;
|
|
var dummyContainer = new Array(accessCount);
|
|
|
|
function DOMSpeed() {
|
|
var s = document.getElementById('speed_dom');
|
|
++counter;
|
|
var startTime = new Date();
|
|
for( var i = 0; i <= accessCount; i++) {
|
|
if (test == 1) {
|
|
s.lastChild.data = counter + "/" + testruns + ":" + i;
|
|
}
|
|
dummyContainer[i] = s.innerText;
|
|
}
|
|
|
|
var endTime = new Date();
|
|
var time = (endTime - startTime);
|
|
total = total + time;
|
|
var results = document.getElementById('results' + test);
|
|
results.firstChild.data = results.textContent + time + ", " + ((counter % 15 == 0) ? "\n " : "");
|
|
if (counter < testruns) {
|
|
setTimeout(DOMSpeed, 0);
|
|
} else {
|
|
results.firstChild.data = results.textContent + "\ntotal: " + total +
|
|
", avg " + (total/testruns);
|
|
if (++test == 2) {
|
|
s.lastChild.data = "Now testing a case where .innerText can be cached."
|
|
counter = 0;
|
|
total = 0;
|
|
setTimeout(DOMSpeed, 0);
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="setTimeout(DOMSpeed, 0)">
|
|
<div id="speed_dom"><b><span> Testing...</span> please wait...</b>0</div>
|
|
<pre id="results1"> </pre>
|
|
<pre id="results2"> </pre>
|
|
|
|
|
|
</body></html> |