scope crossing (v6)

Revision 6 of this benchmark created on


Description

How it's quicker to cache objects in your current scope or pass them as parameters, depending on the number of accesses inside the function

Preparation HTML

<script>
  var someobj={a:1,b:2,c:3}
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
no cache
(function(){
 someobj.a=123;
 someobj.b=123;
 someobj.c=123;
 var a1 = someobj.a;
 var b1 = someobj.b;
 var c1 = someobj.c;
 var a2 = someobj.a;
 var b2 = someobj.b;
 var c2 = someobj.c;
 var a3 = someobj.a;
 var b3 = someobj.b;
 var c3 = someobj.c;
 var a4 = someobj.a;
 var b4 = someobj.b;
 var c4 = someobj.c;
})()
ready
cached object
(function(){
var so=someobj;
 so.a=123;
 so.b=123;
 so.c=123;
 var a1 = so.a;
 var b1 = so.b;
 var c1 = so.c;
 var a2 = so.a;
 var b2 = so.b;
 var c2 = so.c;
 var a3 = so.a;
 var b3 = so.b;
 var c3 = so.c;
 var a4 = so.a;
 var b4 = so.b;
 var c4 = so.c;
})()
ready
passed object
(function(so){
 so.a=123;
 so.b=123;
 so.c=123;
 var a1 = so.a;
 var b1 = so.b;
 var c1 = so.c;
 var a2 = so.a;
 var b2 = so.b;
 var c2 = so.c;
 var a3 = so.a;
 var b3 = so.b;
 var c3 = so.c;
 var a4 = so.a;
 var b4 = so.b;
 var c4 = so.c;
})(someobj)
ready
passed variables
(function(a, b, c){
 a=123;
 b=123;
 c=123;
 var a1 = a;
 var b1 = b;
 var c1 = c;
 var a2 = a;
 var b2 = b;
 var c2 = c;
 var a3 = a;
 var b3 = b;
 var c3 = c;
 var a4 = a;
 var b4 = b;
 var c4 = c;
})(someobj.a, someobj.b, someobj.c)
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.