Closed Bug 928179 Opened 11 years ago Closed 3 years ago

Investigate why cycle collector doesn't merge compartments in three.js demo

Categories

(Core :: XPCOM, defect)

defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: mccr8, Unassigned)

References

Details

(Keywords: testcase)

If you load this demo:
  http://threejs.org/examples/webgl_materials_cars_camaro.html
...and hit reload in the middle of the loading, you get a CC that looks like this:

CC(T+151.9) duration: 1330ms, suspected: 1252, visited: 1632 RCed and 1065891 GCed, collected: 1090 RCed and 1065783 GCed (1066873|3 waiting for GC)

In theory, we should be trying to merge the JS compartments in the CC graph, and then we wouldn't get such a long CC, and it would be harder to blow up the hash table memory.  I should look into why that isn't happening...
Well, it looks like sometimes it works, so maybe this is just the heuristic being touchy, which isn't surprising:
CC(T+34.6) duration: 3348ms, suspected: 214, visited: 1100 RCed and 1183 merged GCed, collected: 979 RCed and 1080 GCed (2059|2 waiting for GC)
Keywords: testcase

Compartment merging was a cool idea, but it basically failed in practice. I don't think having these old bugs around is useful. Maybe somebody can revive it, but they'd need to start over from the ground up.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.