Add sunspider to desktop-driver
This commit is contained in:
Родитель
052f7f4d15
Коммит
f8d0464380
|
@ -42,8 +42,12 @@ class Octane(Benchmark):
|
||||||
ret.append({'name': key, 'time': results[key]})
|
ret.append({'name': key, 'time': results[key]})
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
class SunSpider(Benchmark):
|
||||||
|
def __init__(self):
|
||||||
|
Benchmark.__init__(self, "ss", "desktop-driver/ss.html")
|
||||||
|
|
||||||
Benchmarks = [Octane()]
|
|
||||||
|
Benchmarks = [Octane(), SunSpider()]
|
||||||
|
|
||||||
# Test if server is running and start server if needed.
|
# Test if server is running and start server if needed.
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
|
|
@ -0,0 +1,129 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset=utf8>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Copyright (C) 2007 Apple Inc. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
|
||||||
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||||
|
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<title>SunSpider 1.0.2 JavaScript Benchmark (sunspider-1.0.2 test suite - In Progress...)</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body onload="start()">
|
||||||
|
|
||||||
|
<h2><span id="logo">☀</span>SunSpider JavaScript Benchmark <small>(In Progress...)</small></h2>
|
||||||
|
<h3>Content Version: sunspider-1.0.2</h3>
|
||||||
|
|
||||||
|
<!-- TODO: generate these js files on the fly in server.py -->
|
||||||
|
<script src="sunspider-test-prefix.js"></script>
|
||||||
|
<script src="sunspider-test-contents.js"></script>
|
||||||
|
<script>
|
||||||
|
var testIndex = -1;
|
||||||
|
var currentRepeat = -1;
|
||||||
|
var repeatCount = 10;
|
||||||
|
var warmupMS = 8;
|
||||||
|
|
||||||
|
var output = [];
|
||||||
|
output.length = repeatCount;
|
||||||
|
for (var i = 0; i < output.length; i++) {
|
||||||
|
output[i] = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
function warmup()
|
||||||
|
{
|
||||||
|
for (var start = new Date; new Date - start < warmupMS; ) {
|
||||||
|
for (var i = 0; i < 100; ++i) {
|
||||||
|
if (Math.atan(Math.acos(Math.asin(Math.random()))) > 4) // Always false.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function start()
|
||||||
|
{
|
||||||
|
window.setTimeout(next, 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
function next()
|
||||||
|
{
|
||||||
|
document.getElementById("frameparent").innerHTML = "";
|
||||||
|
document.getElementById("frameparent").innerHTML = "<iframe id='testframe'>";
|
||||||
|
var testFrame = document.getElementById("testframe");
|
||||||
|
if (++testIndex < tests.length) {
|
||||||
|
// Warm up the CPU a little bit, in case power management clocked it down
|
||||||
|
// or put it to sleep. We're trying to strike a balance here: do enough
|
||||||
|
// work so that all browsers see the CPU at an equal clock rate, but
|
||||||
|
// not so much work that we hide performance problems caused by overly
|
||||||
|
// aggressive power management.
|
||||||
|
warmup();
|
||||||
|
|
||||||
|
testFrame.contentDocument.open();
|
||||||
|
testFrame.contentDocument.write(testContents[testIndex]);
|
||||||
|
testFrame.contentDocument.close();
|
||||||
|
|
||||||
|
window.setTimeout(next, 0);
|
||||||
|
} else if (++currentRepeat < repeatCount) {
|
||||||
|
document.getElementById("countdown").innerHTML = repeatCount - currentRepeat;
|
||||||
|
testIndex = -1;
|
||||||
|
|
||||||
|
window.setTimeout(next, 128);
|
||||||
|
} else {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function recordResult(time)
|
||||||
|
{
|
||||||
|
if (currentRepeat >= 0) // negative repeats are warmups
|
||||||
|
output[currentRepeat][tests[testIndex]] = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
function finish()
|
||||||
|
{
|
||||||
|
var total = 0;
|
||||||
|
var results = [];
|
||||||
|
for (var test in output[0]) {
|
||||||
|
var time = 0
|
||||||
|
for (var i = 0; i < output.length; i++) {
|
||||||
|
time += output[i][test];
|
||||||
|
}
|
||||||
|
total += time;
|
||||||
|
results[results.length] = {'name': test, 'time': time / output.length}
|
||||||
|
}
|
||||||
|
results[results.length] = {'name': "__total__", 'time': total / output.length}
|
||||||
|
|
||||||
|
console.log(results)
|
||||||
|
|
||||||
|
location.href = "/submit?results="+encodeURIComponent(JSON.stringify(results))
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<h3 id="countdown">warmup</h3>
|
||||||
|
<div id="frameparent"></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -0,0 +1,2 @@
|
||||||
|
var tests = [ "3d-cube", "3d-morph", "3d-raytrace", "access-binary-trees", "access-fannkuch", "access-nbody", "access-nsieve", "bitops-3bit-bits-in-byte", "bitops-bits-in-byte", "bitops-bitwise-and", "bitops-nsieve-bits", "controlflow-recursive", "crypto-aes", "crypto-md5", "crypto-sha1", "date-format-tofte", "date-format-xparb", "math-cordic", "math-partial-sums", "math-spectral-norm", "regexp-dna", "string-base64", "string-fasta", "string-tagcloud", "string-unpack-code", "string-validate-input" ];
|
||||||
|
var categories = [ "3d", "access", "bitops", "controlflow", "crypto", "date", "math", "regexp", "string" ];
|
Загрузка…
Ссылка в новой задаче