var property = 0;
var data = {
property: property
};
var method = {
getProperty: function() {
return property;
},
setProperty: function(value) {
property = value;
}
};
var objectLiteralAccessor = {
get property() {
return property;
},
set property(value) {
property = value;
}
};
function Class() {
}
Class.prototype = {
get property() {
return property;
},
set property(value) {
property = value;
}
};
var prototypeAccessor = new Class();
var p0 = new Proxy({}, {
get(target, prop, receiver) {
return property;
},
set(target, prop, value) {
property = value;
return true;
},
});
var p1 = new Proxy({ property: 0 }, {
get(target, prop, receiver) {
return target[prop]
},
set(target, prop, value) {
target[prop] = value;
return true;
},
});
var p2 = new Proxy({ property: 0 }, {
get(target, prop, receiver) {
return Reflect.get(target, prop, receiver);
},
set(target, prop, value, receiver) {
return Reflect.set(target, prop, value, receiver);
},
});
var value = data.property;
data.property = property+1;
var value = method.getProperty();
method.setProperty(property+1);
var value = objectLiteralAccessor.property;
objectLiteralAccessor.property = property+1;
var value = prototypeAccessor.property;
prototypeAccessor.property = property+1;
var value = p0.property;
p0.property = property+1;
var value = p1.property;
p1.property = property+1;
var value = p2.property;
p2.property = property+1;
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
Read from data property | |
Write to data property | |
Read from accessor method | |
Write to mutator method | |
Read from object literal property | |
Write to object literal property | |
Read from object literal property on prototype | |
Write to object literal property on prototype | |
R p0 | |
W p0 | |
r p1 | |
w p1 | |
r p2 | |
w p2 |
Test name | Executions per second |
---|---|
Read from data property | 25551044.0 Ops/sec |
Write to data property | 12813608.0 Ops/sec |
Read from accessor method | 12791210.0 Ops/sec |
Write to mutator method | 7580195.5 Ops/sec |
Read from object literal property | 11415879.0 Ops/sec |
Write to object literal property | 5507650.0 Ops/sec |
Read from object literal property on prototype | 12877096.0 Ops/sec |
Write to object literal property on prototype | 7573325.5 Ops/sec |
R p0 | 10788188.0 Ops/sec |
W p0 | 6737351.0 Ops/sec |
r p1 | 18332918.0 Ops/sec |
w p1 | 10410502.0 Ops/sec |
r p2 | 7762643.5 Ops/sec |
w p2 | 2903119.0 Ops/sec |
To analyze the data, I'll first parse it into a JSON format and then use Python to process it.
Here's the parsed JSON:
[
{
"RawUAString": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
"Browser": "Chrome 118",
"DevicePlatform": "Desktop",
"OperatingSystem": "Windows",
"ExecutionsPerSecond": 12791210.0,
"TestName": "Read from accessor method"
},
{
...
}
]
Now, let's analyze the data:
Browsers: Chrome 118
Devices: Desktop (only)
Operating Systems: Windows
Execution Rates:
Trends:
Please let me know what specific questions or trends you'd like me to investigate further!