js/src/devtools/gc/tests/dslots.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 //Benchmark to measure overhead of dslots allocation and deallocation
     3 function Object0() {};
     4 function Object1() { this.a=1; };
     5 function Object2() { this.a=1; this.b=1; };
     6 function Object3() { this.a=1; this.b=1; this.c=1; };
     7 function Object4() { this.a=1; this.b=1; this.c=1; this.d=1; };
     8 function Object5() { this.a=1; this.b=1; this.c=1; this.d=1; this.e=1; };
    10 function test() {
    11     var N = 1e5;
    12     gc();
    14     for(var i = 0; i<=5; i++)
    15     {
    16         var tmp = i==0 ? Object0 : i==1 ? Object1 : i==2 ? Object2 : i==3 ? Object3 : i==4 ? Object4 : Object5;
    17         for (var j = 0; j != N; j++) {
    18             var a = new tmp();
    19         }
    20         gc();
    21     }
    22 }
    24 for(var i = 0; i<=5; i++) {
    25     test();
    26 }

mercurial