Es gibt keinen Leistungsunterschied seit mindestens Chrome 47.0.2526.80 (64-Bit).
Testing in Chrome 6.0.3359 on Mac OS 10.13.4
-----------------------------------------------
Test Ops/sec
non-frozen object 106,825,468 ±1.08% fastest
frozen object 106,176,323 ±1.04% fastest
Leistungstest (verfügbar unter http://jsperf.com/performance-frozen-object ):
const o1 = {a: 1};
const o2 = {a: 1};
Object.freeze(o2);
for(var key in o1);
for(var key in o2);
Update 30.10.2019 : Bei Chrome 78.0.3904 (64-Bit) gibt es keinen Leistungsunterschied.
Update 17.09.2019 : Bei Chrome 76.0.3809 (64-Bit) gibt es keinen Leistungsunterschied.
Update 03.05.2018 : Bei Chrome 66.0.3359 (64-Bit) gibt es keinen Leistungsunterschied.
Update 06.03.2017 : Bei Chrome 56.0.2924 (64-Bit) gibt es keinen Leistungsunterschied.
Update 13.12.2015 : Bei Chrome 47.0.2526.80 (64-Bit) gibt es keinen Leistungsunterschied.
Mit Chrome 34 schneidet ein eingefrorenes Objekt im Testfall von @ pimvdb etwas besser ab als ein nicht eingefrorenes (Ergebnisse unten). Der Unterschied scheint jedoch nicht groß genug zu sein, um die Verwendung dieser Technik für Leistungsvorteile zu rechtfertigen.
http://jsperf.com/performance-frozen-object
Testing in Chrome 34.0.1847.116 on OS X 10.9.2
----------------------------------------------
Test Ops/sec
non-frozen object 105,250,353 ±0.41% 3% slower
frozen object 108,188,527 ±0.55% fastest
Das Ausführen der Testfälle von @ kangax zeigt, dass beide Versionen des Objekts ziemlich gleich funktionieren:
http://jsperf.com/performance-frozen-object-prop-access
Testing in Chrome 34.0.1847.116 on OS X 10.9.2
----------------------------------------------
Test Ops/sec
non-frozen object 832,133,923 ±0.26% fastest
frozen object 832,501,726 ±0.28% fastest
http://jsperf.com/http-jsperf-com-performance-frozen-object-instanceof
Testing in Chrome 34.0.1847.116 on OS X 10.9.2
----------------------------------------------
Test Ops/sec
non-frozen object 378,464,917 ±0.42% fastest
frozen object 378,705,082 ±0.24% fastest