jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
<!-- HighCharts -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<div id="highcharts-container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<!-- AM Charts -->
<script src="http://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="http://www.amcharts.com/lib/3/serial.js"></script>
<div id="amcharts-container" style="width: 900px; height: 500px;"></div>
<!-- NVD3 Charts -->
<script src="https://rawgithub.com/novus/nvd3/master/lib/d3.v2.js"></script>
<script src="https://rawgithub.com/novus/nvd3/master/nv.d3.js"></script>
<div id="nvd3-container" style="width: 900px; height: 500px;"><svg></svg></div>
<!-- Google Charts -->
<script src="https://www.google.com/jsapi" type="text/javascript"></script>
<div id="google-container" style="width: 900px; height: 500px;"></div>
<!-- Rickshaw Charts -->
<link type="text/css" rel="stylesheet" href="http://code.shutterstock.com/rickshaw/rickshaw.min.css"></script>
<script src="http://code.shutterstock.com/rickshaw/vendor/d3.v3.js"></script>
<script src="http://code.shutterstock.com/rickshaw/vendor/d3.layout.min.js"></script>
<script src="http://code.shutterstock.com/rickshaw/rickshaw.js"></script>
<div id="rickshaw-chart" style="width: 900px; height: 500px;">
<div id="ryaxis"></div>
<div id="rchart"></div>
</div>
<style>
#rickshaw-chart {
float: left;
position: relative;
}
#ryaxis {
position: absolute;
top: 0;
bottom: 0;
width: 40px;
}
#rchart {
position: relative;
left: 40px;
}
</style>
window.getHighChartsData = function() {
return [{
name: 'Cherno More',
data: [
[Date.parse("2012-09-19T20:38:56.319Z"), 1.92],
[Date.parse("2012-09-19T20:54:07.919Z"), 1.72],
[Date.parse("2012-09-19T20:57:10.239Z"), 1.68],
[Date.parse("2012-09-19T21:03:14.879Z"), 1.74],
[Date.parse("2012-09-19T21:06:17.199Z"), 1.74],
[Date.parse("2012-09-19T21:24:31.119Z"), 1.82],
[Date.parse("2012-09-19T21:45:47.359Z"), 1.88],
[Date.parse("2012-09-19T21:48:49.679Z"), 1.86],
[Date.parse("2012-09-19T22:00:58.959Z"), 1.92],
[Date.parse("2012-09-19T22:19:12.879Z"), 1.9],
[Date.parse("2012-09-19T22:22:15.199Z"), 1.9],
[Date.parse("2012-09-19T22:37:26.799Z"), 1.84],
[Date.parse("2012-09-19T22:43:31.439Z"), 1.86],
[Date.parse("2012-09-19T22:46:33.759Z"), 1.84],
[Date.parse("2012-09-19T22:49:36.079Z"), 1.82],
[Date.parse("2012-09-19T23:07:49.999Z"), 1.82],
[Date.parse("2012-09-19T23:10:52.319Z"), 1.8]
]
}, {
name: 'Botev Plovdiv',
data: [
[Date.parse("2012-09-19T20:38:56.319Z"), 2.9],
[Date.parse("2012-09-19T20:54:07.919Z"), 2.68],
[Date.parse("2012-09-19T20:57:10.239Z"), 2.66],
[Date.parse("2012-09-19T21:03:14.879Z"), 2.74],
[Date.parse("2012-09-19T21:06:17.199Z"), 2.74],
[Date.parse("2012-09-19T21:24:31.119Z"), 2.82],
[Date.parse("2012-09-19T21:45:47.359Z"), 2.88],
[Date.parse("2012-09-19T21:48:49.679Z"), 2.86],
[Date.parse("2012-09-19T22:00:58.959Z"), 2.88],
[Date.parse("2012-09-19T22:19:12.879Z"), 2.9],
[Date.parse("2012-09-19T22:22:15.199Z"), 2.82],
[Date.parse("2012-09-19T22:37:26.799Z"), 2.84],
[Date.parse("2012-09-19T22:43:31.439Z"), 2.86],
[Date.parse("2012-09-19T22:46:33.759Z"), 2.84],
[Date.parse("2012-09-19T22:49:36.079Z"), 2.82],
[Date.parse("2012-09-19T23:07:49.999Z"), 2.8],
[Date.parse("2012-09-19T23:10:52.319Z"), 2.8]
]
}, {
name: 'The Draw',
data: [
[Date.parse("2012-09-19T20:38:56.319Z"), 3.55],
[Date.parse("2012-09-19T20:54:07.919Z"), 3.6],
[Date.parse("2012-09-19T20:57:10.239Z"), 3.65],
[Date.parse("2012-09-19T21:03:14.879Z"), 3.7],
[Date.parse("2012-09-19T21:06:17.199Z"), 3.8],
[Date.parse("2012-09-19T21:24:31.119Z"), 3.85],
[Date.parse("2012-09-19T21:45:47.359Z"), 3.45],
[Date.parse("2012-09-19T21:48:49.679Z"), 3.5],
[Date.parse("2012-09-19T22:00:58.959Z"), 3.55],
[Date.parse("2012-09-19T22:19:12.879Z"), 3.7],
[Date.parse("2012-09-19T22:22:15.199Z"), 3.5],
[Date.parse("2012-09-19T22:37:26.799Z"), 3.75],
[Date.parse("2012-09-19T22:43:31.439Z"), 3.8],
[Date.parse("2012-09-19T22:46:33.759Z"), 3.55],
[Date.parse("2012-09-19T22:49:36.079Z"), 3.65],
[Date.parse("2012-09-19T23:07:49.999Z"), 3.7],
[Date.parse("2012-09-19T23:10:52.319Z"), 3.75]
]
}];
};
window.getRickshawData = function(color) {
return [{
name: 'Cherno More',
data: [{
x: Date.parse("2012-09-19T20:38:56.319Z"),
y: 1.92
}, {
x: Date.parse("2012-09-19T20:54:07.919Z"),
y: 1.72
}, {
x: Date.parse("2012-09-19T20:57:10.239Z"),
y: 1.68
}, {
x: Date.parse("2012-09-19T21:03:14.879Z"),
y: 1.74
}, {
x: Date.parse("2012-09-19T21:06:17.199Z"),
y: 1.74
}, {
x: Date.parse("2012-09-19T21:24:31.119Z"),
y: 1.82
}, {
x: Date.parse("2012-09-19T21:45:47.359Z"),
y: 1.88
}, {
x: Date.parse("2012-09-19T21:48:49.679Z"),
y: 1.86
}, {
x: Date.parse("2012-09-19T22:00:58.959Z"),
y: 1.92
}, {
x: Date.parse("2012-09-19T22:19:12.879Z"),
y: 1.9
}, {
x: Date.parse("2012-09-19T22:22:15.199Z"),
y: 1.9
}, {
x: Date.parse("2012-09-19T22:37:26.799Z"),
y: 1.84
}, {
x: Date.parse("2012-09-19T22:43:31.439Z"),
y: 1.86
}, {
x: Date.parse("2012-09-19T22:46:33.759Z"),
y: 1.84
}, {
x: Date.parse("2012-09-19T22:49:36.079Z"),
y: 1.82
}, {
x: Date.parse("2012-09-19T23:07:49.999Z"),
y: 1.82
}, {
x: Date.parse("2012-09-19T23:10:52.319Z"),
y: 1.8
}],
color: color
}, {
name: 'Botev Plovdiv',
data: [{
x: Date.parse("2012-09-19T20:38:56.319Z"),
y: 2.9
}, {
x: Date.parse("2012-09-19T20:54:07.919Z"),
y: 2.68
}, {
x: Date.parse("2012-09-19T20:57:10.239Z"),
y: 2.66
}, {
x: Date.parse("2012-09-19T21:03:14.879Z"),
y: 2.74
}, {
x: Date.parse("2012-09-19T21:06:17.199Z"),
y: 2.74
}, {
x: Date.parse("2012-09-19T21:24:31.119Z"),
y: 2.82
}, {
x: Date.parse("2012-09-19T21:45:47.359Z"),
y: 2.88
}, {
x: Date.parse("2012-09-19T21:48:49.679Z"),
y: 2.86
}, {
x: Date.parse("2012-09-19T22:00:58.959Z"),
y: 2.88
}, {
x: Date.parse("2012-09-19T22:19:12.879Z"),
y: 2.9
}, {
x: Date.parse("2012-09-19T22:22:15.199Z"),
y: 2.82
}, {
x: Date.parse("2012-09-19T22:37:26.799Z"),
y: 2.84
}, {
x: Date.parse("2012-09-19T22:43:31.439Z"),
y: 2.86
}, {
x: Date.parse("2012-09-19T22:46:33.759Z"),
y: 2.84
}, {
x: Date.parse("2012-09-19T22:49:36.079Z"),
y: 2.82
}, {
x: Date.parse("2012-09-19T23:07:49.999Z"),
y: 2.8
}, {
x: Date.parse("2012-09-19T23:10:52.319Z"),
y: 2.8
}],
color: color
}, {
name: 'The Draw',
data: [{
x: Date.parse("2012-09-19T20:38:56.319Z"),
y: 3.55
}, {
x: Date.parse("2012-09-19T20:54:07.919Z"),
y: 3.6
}, {
x: Date.parse("2012-09-19T20:57:10.239Z"),
y: 3.65
}, {
x: Date.parse("2012-09-19T21:03:14.879Z"),
y: 3.7
}, {
x: Date.parse("2012-09-19T21:06:17.199Z"),
y: 3.8
}, {
x: Date.parse("2012-09-19T21:24:31.119Z"),
y: 3.85
}, {
x: Date.parse("2012-09-19T21:45:47.359Z"),
y: 3.45
}, {
x: Date.parse("2012-09-19T21:48:49.679Z"),
y: 3.5
}, {
x: Date.parse("2012-09-19T22:00:58.959Z"),
y: 3.55
}, {
x: Date.parse("2012-09-19T22:19:12.879Z"),
y: 3.7
}, {
x: Date.parse("2012-09-19T22:22:15.199Z"),
y: 3.5
}, {
x: Date.parse("2012-09-19T22:37:26.799Z"),
y: 3.75
}, {
x: Date.parse("2012-09-19T22:43:31.439Z"),
y: 3.8
}, {
x: Date.parse("2012-09-19T22:46:33.759Z"),
y: 3.55
}, {
x: Date.parse("2012-09-19T22:49:36.079Z"),
y: 3.65
}, {
x: Date.parse("2012-09-19T23:07:49.999Z"),
y: 3.7
}, {
x: Date.parse("2012-09-19T23:10:52.319Z"),
y: 3.75
}],
color: color
}];
};
window.getAmData = function() {
return [{
'date': '20:38',
'Cherno More': 1.92,
'Botev Plovdiv': 2.9,
'The Draw': 3.55
}, {
'date': "20:54",
'Cherno More': 1.68,
'Botev Plovdiv': 2.68,
'The Draw': 3.6
}, {
'date': "20:57",
'Cherno More': 1.74,
'Botev Plovdiv': 2.66,
'The Draw': 3.65
}, {
'date': "21:03",
'Cherno More': 1.74,
'Botev Plovdiv': 2.74,
'The Draw': 3.7
}, {
'date': "21:06",
'Cherno More': 1.82,
'Botev Plovdiv': 2.74,
'The Draw': 3.8
}, {
'date': "21:24",
'Cherno More': 1.88,
'Botev Plovdiv': 2.82,
'The Draw': 3.85
}, {
'date': "21:45",
'Cherno More': 1.86,
'Botev Plovdiv': 2.88,
'The Draw': 3.45
}, {
'date': "21:48",
'Cherno More': 1.92,
'Botev Plovdiv': 2.86,
'The Draw': 3.5
}, {
'date': "22:00",
'Cherno More': 1.9,
'Botev Plovdiv': 2.88,
'The Draw': 3.55
}, {
'date': "22:19",
'Cherno More': 1.9,
'Botev Plovdiv': 2.9,
'The Draw': 3.7
}, {
'date': "22:22",
'Cherno More': 1.84,
'Botev Plovdiv': 2.82,
'The Draw': 3.5
}, {
'date': "22:37",
'Cherno More': 1.86,
'Botev Plovdiv': 2.84,
'The Draw': 3.75
}, {
'date': "22:43",
'Cherno More': 1.84,
'Botev Plovdiv': 2.86,
'The Draw': 3.8
}, {
'date': "22:46",
'Cherno More': 1.82,
'Botev Plovdiv': 2.84,
'The Draw': 3.55
}, {
'date': "22:49",
'Cherno More': 1.92,
'Botev Plovdiv': 2.82,
'The Draw': 3.65
}, {
'date': "23:07",
'Cherno More': 1.82,
'Botev Plovdiv': 2.8,
'The Draw': 3.7
}, {
'date': "23:10",
'Cherno More': 1.8,
'Botev Plovdiv': 2.8,
'The Draw': 3.75
}];
}
window.getNVDData = function() {
return [{
key: 'Cherno More',
values: [
[
"2012-09-19T20:38:56.319Z",
1.92
],
[
"2012-09-19T20:54:07.919Z",
1.72
],
[
"2012-09-19T20:57:10.239Z",
1.68
],
[
"2012-09-19T21:03:14.879Z",
1.74
],
[
"2012-09-19T21:06:17.199Z",
1.74
],
[
"2012-09-19T21:06:17.199Z",
1.82
],
[
"2012-09-19T21:24:31.119Z",
1.88
],
[
"2012-09-19T21:45:47.359Z",
1.86
],
[
"2012-09-19T21:45:47.359Z",
1.92
],
[
"2012-09-19T21:48:49.679Z",
1.9
],
[
"2012-09-19T22:00:58.959Z",
1.9
],
[
"2012-09-19T22:19:12.879Z",
1.84
],
[
"2012-09-19T22:22:15.199Z",
1.86
],
[
"2012-09-19T22:37:26.799Z",
1.84
],
[
"2012-09-19T22:43:31.439Z",
1.82
],
[
"2012-09-19T22:46:33.759Z",
1.82
],
[
"2012-09-19T22:49:36.079Z",
1.8
]
]
}, {
key: 'Botev Plovdiv',
values: [
[
"2012-09-19T20:38:56.319Z",
2.9
],
[
"2012-09-19T20:54:07.919Z",
2.68
],
[
"2012-09-19T20:57:10.239Z",
2.66
],
[
"2012-09-19T21:03:14.879Z",
2.74
],
[
"2012-09-19T21:06:17.199Z",
2.74
],
[
"2012-09-19T21:24:31.119Z",
2.82
],
[
"2012-09-19T21:45:47.359Z",
2.88
],
[
"2012-09-19T21:48:49.679Z",
2.86
],
[
"2012-09-19T22:00:58.959Z",
2.88
],
[
"2012-09-19T22:19:12.879Z",
2.9
],
[
"2012-09-19T22:22:15.199Z",
2.82
],
[
"2012-09-19T22:37:26.799Z",
2.84
],
[
"2012-09-19T22:43:31.439Z",
2.86
],
[
"2012-09-19T22:46:33.759Z",
2.84
],
[
"2012-09-19T22:49:36.079Z",
2.82
],
[
"2012-09-19T23:07:49.999Z",
2.8
],
[
"2012-09-19T23:10:52.319Z",
2.8
]
]
}, {
key: 'The Draw',
values: [
[
"2012-09-19T20:38:56.319Z",
3.55
],
[
"2012-09-19T20:54:07.919Z",
3.6
],
[
"2012-09-19T20:57:10.239Z",
3.65
],
[
"2012-09-19T21:03:14.879Z",
3.7
],
[
"2012-09-19T21:06:17.199Z",
3.8
],
[
"2012-09-19T21:24:31.119Z",
3.85
],
[
"2012-09-19T21:45:47.359Z",
3.45
],
[
"2012-09-19T21:48:49.679Z",
3.5
],
[
"2012-09-19T22:00:58.959Z",
3.55
],
[
"2012-09-19T22:19:12.879Z",
3.7
],
[
"2012-09-19T22:22:15.199Z",
3.5
],
[
"2012-09-19T22:37:26.799Z",
3.75
],
[
"2012-09-19T22:43:31.439Z",
3.8
],
[
"2012-09-19T22:46:33.759Z",
3.55
],
[
"2012-09-19T22:49:36.079Z",
3.65
],
[
"2012-09-19T23:07:49.999Z",
3.7
],
[
"2012-09-19T23:10:52.319Z",
3.75
]
]
}];
}
window.getGoogleChartsMap = function() {
return [
['time', 'Cherno More', 'Botev Plovdiv', 'The Draw'], ['20:38', 1.92, 2.9, 3.55], ['20:54', 1.72, 2.68, 3.6], ['20:57', 1.68, 2.66, 3.65], ['21:03', 1.74, 2.74, 3.7], ['21:06', 1.74, 2.74, 3.8], ['21:24', 1.82, 2.82, 3.85], ['21:45', 1.88, 2.88, 3.7], ['21:48', 1.86, 2.86, 3.5], ['22:00', 1.92, 2.88, 3.55], ['22:19', 1.9, 2.9, 3.7], ['22:22', 1.9, 2.82, 3.5], ['22:37', 1.84, 2.84, 3.75], ['22:43', 1.86, 2.86, 3.8], ['22:46', 1.84, 2.84, 3.55], ['22:49', 1.82, 2.82, 3.65], ['23:07', 1.82, 2.8, 3.7], ['23:10', 1.8, 2.8, 3.75]
];
}
Ready to run.
Test | Ops/sec | |
---|---|---|
Highcharts |
| ready |
amCharts |
| ready |
NVD3 |
| ready |
Rickshaw |
| ready |
Google Charts |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.