Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Mathjs Performance
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 17_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1.2 Mobile/15E148 Safari/604.1
Browser:
Mobile Safari 17
Operating system:
iOS 17.1.2
Device Platform:
Mobile
Date tested:
2 years ago
Test name
Executions per second
Native Arrow
1885.1 Ops/sec
Native Function
1903.3 Ops/sec
Native inline
3389.3 Ops/sec
Mathjs evaluate
75.4 Ops/sec
Mathjs compile
275.5 Ops/sec
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/12.2.0/math.min.js"></script>
Script Preparation code:
var nativearrow = (x, y, z) => x*x + y*y + z*z; var nativefunc = new Function('x', 'y', 'z', 'return x*x + y*y + z*z') var mathexpr = math.parse('x^2 + y^2 + z^2') var mathcomp = mathexpr.compile() var funcexpr = (x, y, z) => mathexpr.evaluate({x, y, z}) var funccomp = (x, y, z) => mathcomp.evaluate({x, y, z}) var N = 20
Tests:
Native Arrow
const out = [] for (let x = 0; x < N; x += 1) { for (let y = 0; y < N; y += 1) { for (let z = 0; z < N; z += 1) { out.push(nativearrow(x, y, z)) } } }
Native Function
const out = [] for (let x = 0; x < N; x += 1) { for (let y = 0; y < N; y += 1) { for (let z = 0; z < N; z += 1) { out.push(nativefunc(x, y, z)) } } }
Native inline
const out = [] for (let x = 0; x < N; x += 1) { for (let y = 0; y < N; y += 1) { for (let z = 0; z < N; z += 1) { out.push(x*x + y*y + z*z) } } }
Mathjs evaluate
const out = [] for (let x = 0; x < N; x += 1) { for (let y = 0; y < N; y += 1) { for (let z = 0; z < N; z += 1) { out.push(funcexpr(x, y, z)) } } }
Mathjs compile
const out = [] for (let x = 0; x < N; x += 1) { for (let y = 0; y < N; y += 1) { for (let z = 0; z < N; z += 1) { out.push(funccomp(x, y, z)) } } }