This page benchmarks the performance of a collection of matrix libraries most of which are intended for use with WebGL:
glMatrix (v3.4.0, 2023-4-11),
mjs (rev 16, 2010-12-15),
CanvasMatrix,
EWGL_math (rev 32, 2011-03-15),
the math utilities in Google's Closure (svn rev: 1364, 2011-11-3),
tdl (commit: 59d484f, 2011-06-03),
twgl.js (v3.3.0, 2017-05-05),
wgpu-matrix (v1.0.0, 2023-04-1), and
Sylvester (v0.1.3, 2007-07-05).
Benchmarks for each library are run in an iframe. Results measure millions of iterations per second of the target operation.
Library | Multiplication | Average |
---|---|---|
wgpu-matrix-native | ||
wgpu-matrix-float64 | ||
wgpu-matrix | ||
w-alloc | ||
twgl-native | ||
twgl-math-native | ||
twgl-math | ||
twgl-float64 | ||
twgl | ||
t-alloc | ||
mjs | ||
glm-js-gl-matrix | ||
glm-js | ||
glMatrix-native | ||
glMatrix-float64 | ||
glMatrix | ||
closure | ||
Three | ||
TDLMath | ||
TDLFast | ||
Sylvester | ||
DOMMatrix | ||
CanvasMatrix |
Adapted by Stephen Bannasch from the benchmarks Brandon Jones created in his glmatrix library.
Additional improvements by Gregg Tavares.
Sylvester benchmarks by Felix E. Klee.
JavaScript Plotting library: Flotr;
Sortable Table by Andrew Tetlaw.
The source code for these benchmarks can be found here on github. Pull requests quite welcome!