Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
ES6 Class vs Prototype vs Object Literal vs Array
Test the speed and memory usage using 3 different techniques for constructing class objects.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36
Browser:
Chrome 136
Operating system:
Linux
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
ES6 Class
264923.6 Ops/sec
Function Prototype
226727.5 Ops/sec
Object Literal
935237.7 Ops/sec
Array
106892488.0 Ops/sec
Array w/destr
74500304.0 Ops/sec
Tests:
ES6 Class
class Point { constructor(x, y){ this.x = x; this.y = y; } add(point){ return new Point(this.x + point.x, this.y + point.y); } sub(point){ return new Point(this.x - point.x, this.y - point.y); } } var p1 = new Point(10, 10); var p2 = new Point(10, -10); var sum = p1.add(p2); var dif = p1.sub(p2);
Function Prototype
function Point(x, y){ this.x = x; this.y = y; } Point.prototype.add = function(point){ return new Point(this.x + point.x, this.y + point.y); } Point.prototype.sub = function(point){ return new Point(this.x - point.x, this.y - point.y); } var p1 = new Point(10, 10); var p2 = new Point(10, -10); var sum = p1.add(p2); var dif = p1.sub(p2);
Object Literal
function Point(x, y){ return { x, y, add: (point)=>Point(this.x + point.x, this.y + point.y), sub: (point)=>Point(this.x - point.x, this.y - point.y) } } var p1 = Point(10, 10); var p2 = Point(10, -10); var sum = p1.add(p2); var dif = p1.sub(p2);
Array
function Point(x, y) { return [x,y]; } function Point_add(p0, p1) { return [p0[0] + p1[0], p0[1] + p1[1]]; } function Point_sub(p0, p1) { return [p0[0] - p1[0], p0[1] - p1[1]]; } var p1 = Point(10, 10); var p2 = Point(10, -10); var sum = Point_add(p1, p2); var dif = Point_sub(p1, p2);
Array w/destr
function Point(x, y) { return [x,y]; } function Point_add([x0,y0], [x1,y1]) { return [x0 + x1, y0 + y1]; } function Point_sub([x0,y0], [x1,y1]) { return [x0 - x1, y0 - y1]; } var p1 = Point(10, 10); var p2 = Point(10, -10); var sum = Point_add(p1, p2); var dif = Point_sub(p1, p2);