tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pretenure-object-short-then-long-lived.js (703B)


      1 // Allocate many objects, changing the lifetime from short-lived to long-lived
      2 // and check that we recover.
      3 
      4 load(libdir + "pretenure.js");
      5 
      6 setupPretenureTest();
      7 
      8 // Phase 1: short lived.
      9 
     10 allocateObjects(nurseryCount, false);
     11 let { minor, major } = runTestAndCountCollections(
     12  () => allocateObjects(tenuredCount, false)
     13 );
     14 
     15 print(`${minor} minor GCs, ${major} major GCs`);
     16 assertEq(minor >= 5, true);
     17 assertEq(major == 0, true);
     18 
     19 // Phase 2: long lived.
     20 
     21 allocateObjects(tenuredCount, true);
     22 ({ minor, major } = runTestAndCountCollections(
     23  () => allocateObjects(tenuredCount * 5, true)
     24 ));
     25 
     26 print(`${minor} minor GCs, ${major} major GCs`);
     27 assertEq(minor <= 1, true);
     28 assertEq(major >= 5, true);