Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
Getter / Setter vs Proxy vs Class getter aleynikovsa
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Browser:
Chrome 122
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Benchmark engine:
Benchmark.js
my own test243124124
5.9M/s
class getter setter4124124
4.1M/s
proxy321312
362K/s
setter getter4214214
354K/s
View exact numbers
Test name
Executions per second
✓
my own test243124124
5,866,442 Ops/sec
class getter setter4124124
4,100,785 Ops/sec
proxy321312
361,912 Ops/sec
setter getter4214214
354,272 Ops/sec
Script Preparation code:
data1 = {}; handler = { get: (target, prop) => (target[prop]), set: (target, prop, value) => (target[prop] = value), }; proxy = new Proxy(data1, handler); data2 = { get test() { return this._test; }, set test(value) { return this._test = value; } }; class Data3 { _test; get test() { return this._test; } set test(value) { this._test = value; } } data3 = new Data3(); class Data4 { _test; getTest() { return this._test; } setTest(value) { this._test = value; } } data4 = new Data4();
Tests:
setter getter4214214
data2.test = Math.random(); console.log(data2.test);
proxy321312
proxy.test = Math.random(); console.log(proxy.test);
class getter setter4124124
data3.test = Math.random() data3test = data3.test
my own test243124124
data4.setTest(Math.random()) data4.getTest()