blob: bbd2582a682ffd8c98128d37c76b5c469804c0a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// Test that we only sample about allocationSamplingProbability * 100 percent of
// allocations.
const root = newGlobal({newCompartment: true});
const dbg = new Debugger();
const wrappedRoot = dbg.addDebuggee(root);
root.eval(`
objs = [];
objs.push(new Object);
`);
root.eval("" + function makeSomeAllocations() {
for (var i = 0; i < 100; i++) {
objs.push(new Object);
}
});
function measure(P, expected) {
root.setSavedStacksRNGState(Number.MAX_SAFE_INTEGER - 1);
dbg.memory.allocationSamplingProbability = P;
root.makeSomeAllocations();
assertEq(dbg.memory.drainAllocationsLog().length, expected);
}
dbg.memory.trackingAllocationSites = true;
// These are the sample counts that were correct when this test was last
// updated; changes to SpiderMonkey may occasionally cause changes
// here. Anything that is within a plausible range for the given sampling
// probability is fine.
measure(0.0, 0);
measure(1.0, 100);
measure(0.1, 11);
measure(0.5, 49);
|