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
<canvas id="canvas"></canvas>
var ELEMENT = document.querySelector('canvas')
var WIDTH = ELEMENT.offsetWidth
var HEIGHT = ELEMENT.offsetHeight
var ctx = ELEMENT.getContext('2d')
var LIMIT = 180
var OUTER_LIMIT = 10
var RANDOMS = []
var PATHS = []
function init() {
ELEMENT.width = WIDTH
ELEMENT.height = HEIGHT
for (var i = 0; i < LIMIT; i++) {
for(var j = 0; j < 6; j++) {
RANDOMS.push(Math.random() * 500)
}
var path = new Path2D()
path.moveTo(RANDOMS[i * 6], RANDOMS[i * 6 + 1])
path.quadraticCurveTo(RANDOMS[i * 6 + 2], RANDOMS[i * 6 + 3], RANDOMS[i * 6 + 4], RANDOMS[i * 6 + 5])
PATHS.push(path)
}
}
function fromNew() {
for (var i = 0; i < LIMIT; i++) {
if (i % 2) {
ctx.strokeStyle = `rgba(0,255,255,0.5)`
} else {
ctx.strokeStyle = `rgba(255,0,255,0.5)`
}
ctx.beginPath()
//ctx.moveTo(RANDOMS[i * 6], RANDOMS[i * 6 + 1])
ctx.moveTo(1, 2)
//ctx.quadraticCurveTo(RANDOMS[i * 6 + 2], RANDOMS[i * 6 + 3], RANDOMS[i * 6 + 4], RANDOMS[i * 6 + 5])
ctx.quadraticCurveTo(3, 4, 5, 6)
ctx.stroke()
}
}
function fromStored() {
for (var i = 0; i < LIMIT; i++) {
if (i % 2) {
ctx.strokeStyle = `rgba(0,255,255,0.5)`
} else {
ctx.strokeStyle = `rgba(255,0,255,0.5)`
}
ctx.setTransform(1, 0, 0, 1, i, i)
ctx.stroke(PATHS[i])
}
}
init()
Ready to run.
Test | Ops/sec | |
---|---|---|
make new paths |
| ready |
use stored paths |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.